我有一个用 node.js 编写的命令行工具。我想:
- 让应用程序能够加载其依赖项并工作。目前,在
npm install -g <somemodule>
该模块之后仍然不可用。事情过去不是这样运作的。 npm link
正如我在NPM 1.0 文档中所读到的,不必在每个文件夹上运行。上面的文档还谈到了 $PATH,这似乎与主题无关,因为我关心的是节点模块,而不是二进制文件。
节点命令行工具如何/应该如何处理其依赖关系,以便命令行工具可以从任何目录运行?
我有一个用 node.js 编写的命令行工具。我想:
npm install -g <somemodule>
该模块之后仍然不可用。事情过去不是这样运作的。npm link
正如我在NPM 1.0 文档中所读到的,不必在每个文件夹上运行。上面的文档还谈到了 $PATH,这似乎与主题无关,因为我关心的是节点模块,而不是二进制文件。节点命令行工具如何/应该如何处理其依赖关系,以便命令行工具可以从任何目录运行?
您可以在 node.js 应用程序的主文件中添加以下内容,假设您的文件名为node-binary.js
.
#! /usr/bin/env node
// your app code
console.log('TEST node binary');
而且,在 package.json 文件中,您需要指定哪个是您的应用程序的入口点
...
"preferGlobal": "true",
"bin": {
"node-binary": "node-binary.js"
},
...
并在应用程序目录中运行命令npm link
。您现在应该能够node-binary
从任何目录使用命令。
希望对您有所帮助... :)