引言
Cerebro 是一款强大的 Mac 系统搜索工具,他允许开发者为其编写插件,扩展其功能。使用 Cerebro 插件可以提高开发效率和使用体验,但是繁琐的插件开发体验令很多开发者望而却步。而 create-cerebro-plugin
这个 NPM 包的出现,大大简化了 Cerebro 插件的创造过程,使得开发者能够更容易的构建插件,从而提高开发效率。
什么是 create-cerebro-plugin?
create-cerebro-plugin 是为 Cerebro 提供简单开发体验的 NPM 包。通过运行一个简单的命令,开发者可以快速构建一个 Cerebro 插件所需的基本文件结构,然后根据自己的需求进行扩展。如果你曾经开发过 npm 包或者 React 组件,你将会感到非常熟悉。
安装 create-cerebro-plugin
为了使用 create-cerebro-plugin,我们必须使用 NPM 进行安装。在终端中运行以下命令:
npm install -g create-cerebro-plugin
这将会在全局安装它,允许你在创建新的 Cerebro 插件时使用 create-cerebro-plugin
命令。
使用 create-cerebro-plugin
create-cerebro-plugin 提供的命令非常简单。运行以下命令:
create-cerebro-plugin [your-plugin-name]
此时,create-cerebro-plugin 会为你自动生成一些基本文件,这些文件包括:
my-plugin/ |__ index.js |__ package.json |__ README.md |__ icon.png |__ screenshot.png
- index.js - 可调用插件的插件逻辑。
- package.json - NPM 包的元数据,名称、描述、依赖项等。
- README.md - 插件使用说明的文档。
- icon.png - 插件在 Cerebro 中显示的小图标。
- screenshot.png - 插件在 Cerebro 中显示的截图。
现在你可以开始编写你的插件代码。例如,你可以打开 my-plugin/index.js
文件并添加以下代码:
-- -------------------- ---- ------- ----- ------------- - -------------------------- -------------- - ----- -------- ------- ------------- - -------------------- - --------------- - -- - ----- --- -------- ---- ------------------------- -- -------- - -- ------ --- ----------- - -- -------- ------ -- --- ----------- ------ --- -------- --------- ------ ----- -- ------ --- -------- ----- ----------- -- ----- ---- --------- -- -- ------------------------------------ --- - - --
这段代码定义了一个名为 MyPlugin
的新类,该类扩展自 CerebroPlugin
类。我们覆盖了父类中的一个方法 getMatchingEntries
,这个方法用于定义当用户在输入框中输入关键字时,生成的搜索结果。在我们的示例中,我们检查用户是否输入了 "myplugin",如果是,则返回一个包含 "myplugin" 项目的搜索结果对象,它将显示插件名称和图标,并在用户按下 enter
键时打开 http://myplugin.com。
最后,重新启动 Cerebro,你将会看到你刚刚创建的插件出现在搜索结果中。当你在 Cerebro 的输入框中输入 "myplugin" 并按下 enter
键时,你应该会看到浏览器打开 http://myplugin.com。
总结
create-cerebro-plugin 是一个方便的工具,可以大大简化 Cerebro 插件开发的过程。同时由于它充分利用了 npm 包管理、及 React 组件化的设计理念,因此也使得非常容易在 Cerebro 中创建如何 react 组件。希望通过这篇文章可以帮助读者快速上手基础的 Cerebro 插件开发。
示例代码
我的 Myplugin
插件,欢迎大家贡献。
-- -------------------- ---- ------- ----- ------------- - -------------------------- -------------- - ----- -------- ------- ------------- - -------------------- - --------------- - -- - ----- --- -------- ---- ------------------------- -- -------- - -- ------ --- ----------- - -- -------- ------ -- --- ----------- ------ --- -------- --------- ------ ----- -- ------ --- -------- ----- ----------- -- ----- ---- --------- -- -- ------------------------------------ --- - - --
参考文献
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005664681e8991b448e259f