我在使用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
我现在该怎么办?
答案 0 :(得分:3)
文件foo-config.js
的名称应为foo-config
,不带扩展名。
如果全局安装,所有可执行文件都应该是chmod 755
答案 1 :(得分:0)
我这样做,包括package.json bin部分中的所有命令。在您的示例中:
"bin": {
"foo": "foo.js",
"foo-config": "foo-config.js"
}
使用此配置,npm链接将安装所有可执行文件,并且所有命令将起作用。