Node.js 如何创建全局可访问的nodejs cli

Node.js 如何创建全局可访问的nodejs cli,node.js,npm,Node.js,Npm,我正在尝试将我的cli.js文件设置为全局cli: #!/usr/bin/env node // ---------------------------------- // CLI // // Command line tool // ---------------------------------- var program = require('commander'); var lib = require('../lib'); // <--- This may be an issu

我正在尝试将我的
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');
运行
npm install
后,我可以链接bin文件,但无法全局运行它。我的意思是,如果我转到另一个目录并运行


$cli

不仅相对路径无效(我需要注入
lib
依赖项),我还需要再次链接文件

我想澄清一下,这就是我想要实现的目标:

  • 通过相对路径包含本地项目依赖项
  • 将项目链接到全球
  • 在其他文件中使用该项目(或将其安装在全新的计算机上),并保持依赖关系完整

  • Grunt和Gulp这样的库如何提供全局可用的命令行界面?请帮忙

    我不直接使用相对路径,而是使用相对路径

    • process.cwd()
    • __文件名
    • __肮脏的

    这可能取决于您的项目特定需要,以及何时需要什么。在我的项目中,我使用advanced来构建所有路径,然后再使用它们。

    是否尝试将其安装在使用NPM安装这些全局CLI软件包的位置?因为当您使用
    -g
    安装时,您的硬盘上的某个位置安装了这些文件。您的代码在线吗?这样我就可以看一看,明白那里出了什么问题。啊!!我相信我误解了你的问题,不是关于加载相关资源,而是代码本身。让我找出一些有用的东西。
    ...
    "bin": {"cli":"./bin/cli.js"}
    ..