我发现很难找到一个关于为 nodejs 应用程序编写插件的好教程(而不是 nodejs 本身!)。
我想要做的是,对于一些 nodejs 应用程序,我想用我写的几个 js 文件来扩展它的功能。
例如,我正在使用 karma runner 来运行 JS 单元测试,但是现有的记者并不能很好地满足我们的日志记录要求。所以我写了我自己的记者并将它放在一个单独的 js 文件中,例如myreporter.js。现在要使用它,我必须将myreporter.js添加到 karma 代码的文件夹中,然后在 karma 的reporter.js中添加一些这样的行:
exports.myreporter = require('./reporters/myreporter');
这在我的机器上运行良好,但是,它可能是 CI 服务器的问题。我不想在我们自己的项目中包含所有业力代码。我想从服务器上的公共 repo 安装业力,并且只在我们的项目中包含 myreporter.js,这样我们就不必为每个构建安装修改后的业力。而且我只想安装 myreporter.js 作为构建的 karma 插件。
我不确定这是否足够清楚。所以我需要为 karma 或任何现有的 nodejs 应用程序编写一个插件。我应该仍然可以像以前一样使用该应用程序,同时我可以使用插件带来的新功能。
我已经看到这个关于peerdependency的页面。这是否意味着如果我将 peerdependency 或 karma 添加到 myreporter.js 的 package.json 文件中,一旦我安装了 myreporter 包并运行 karma,karma 就会选择新的记者?
感谢您对这个长问题的任何帮助。
更新:
尝试过对等依赖,似乎 karma 0.8.6 没有选择我的插件。看起来从 0.9 开始 karma 正在使用di,我想那是它开始支持插件的时候。但是,0.9.3 仍然不是一个稳定的版本。