Plugins 和 Addons
有时候会有一些疑问,是关于一些概念的,今天我们要搞明白的是有关于:
- 插件
- 附件
如果你使用过 Eclipse 或者 VS code(他们的作者其实是同一作者),那么对于插件肯定是不陌生的,这里很容理解插件 Plugin,但是如果你的使用过 firefox 就会发现 firefox 的“插件”并不是plugin, 而是称作 Addons, 今天打开 nodejs 的源码,发现很多的c++的内容,里面也是c++的部分是 node addons, 也就是附属的部分。
plugins
首先 plugin 是一种设计,一个小,而灵活的系统,通过插件进行功能上面的扩展。上面我们已经提到了两个,前端打包的 webpack 也是通过插件机制来进行功能扩展。所以插件设计是一个很常见的设计,插件的设计使原来的系统不在臃肿,专注核心功能。
firefox 中的插件
firefox 中的插件主要是一些视频编码器之类的应用
Addons
Node.js 中的 Addons[1]
插件是用C ++编写的动态链接的共享对象。该 require()函数可以将Addons加载为普通的Node.js模块。插件提供JavaScript和C / C ++库之间的接口。
- v8
- libuv
- 内部 Node.js
- Node.js 包括其他静态链接库
firefox 中的 Addons[2]
firefox 中 addons 是第三方应用,如果我们时常使用了翻译,可以这样理解 firefox 是一个简单的系统,“应用”全部放在 addon。