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 将安装所有可执行文件和所有命令。
我在使用 npm link
和使用 commander.
使用 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 将安装所有可执行文件和所有命令。