如何使全球可访问的nodejs cli
我试图让我的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
不仅相对path无效(我需要注入lib
依赖项),我需要再次链接文件。
只是为了澄清,这是我想要实现的:
- 通过相对path包含本地项目依赖关系
- 全球链接项目
- 在其他文件中使用该项目(或者将其安装在一台全新的机器上),并保持依赖关系不变。
像Grunt和Gulp这样的库如何设法提供全局可用的命令行界面? 请帮忙!
我不直接使用相对path,而是使用具有相对path的nodejs全局对象 ;
- process.cwd()
- __文件名
- __dirname
这可能取决于您的项目具体需要什么时候需要什么。 在我的项目stubb-db中,我使用config builder在高级之前构build所有的path。