npm link 带有 git 风格的子命令

npm link with git-style sub commands

我在使用 npm link 和使用 commander.

构建的 nodejs cli 工具时遇到问题

使用 commander 制作一个 git 风格的子命令风格的 cli 工具我有这些文件:

foo.js

foo-config.js

和foo.js(主文件看起来像这样)

#!/usr/bin/env node  
'use strict';

var program = require('commander');
var pkg = require('./package.json');

program
  .version(pkg.version)
  .command('config', 'Creates default configuration files')
  .parse(process.argv);

我的package.json有这个配置

"bin": {
  "foo": "foo.js"
}

当我 运行 npm link 它成功地创建了符号链接。我什至可以 运行 命令并看到 config cmd 出现在帮助菜单中。

然而,当我尝试 运行 $ foo config 时,我收到以下消息

foo-config(1) does not exist, try --help

我现在该怎么办?

文件 foo-config.js 应命名为 foo-config,不带扩展名。

此外,如果全局安装所有可执行文件应该是 chmod 755

我这样做包括 package.json bin 部分中的所有命令。在您的示例中:

"bin": {
    "foo": "foo.js",
    "foo-config": "foo-config.js"
}

使用此配置,npm link 将安装所有可执行文件和所有命令。