我正在尝试将我的cli.js
文件设为全局cli:
#!/usr/bin/env node
// ----------------------------------
// CLI
//
// Command line tool
// ----------------------------------
var program = require('commander');
var lib = require('../lib'); // <--- This may be an issue
program
.version('0.0.1')
.usage('<cmd>')
.parse(process.argv);
console.log('Running');
我将此文件包含在package.json
:
...
"bin": {"cli":"./bin/cli.js"}
..
运行npm install
后,我可以链接bin文件,但我无法全局运行。我的意思是,如果我去另一个目录并运行
$ cli
不仅相对路径无效(我需要注入lib
依赖项),我还需要再次链接文件。
只是为了澄清,这正是我想要实现的目标:
像Grunt和Gulp这样的图书馆如何设法提供全球可用的命令行界面?请帮忙!
答案 0 :(得分:0)
我不直接使用相对路径,而是使用nodejs global objects和相对路径;
这可能取决于您的项目特定需求何时需要。在我的项目stubb-db中,我使用config builder在使用之前构建了所有高级路径。