CLI与nodejs

时间:2012-07-21 22:43:14

标签: node.js command-line-interface npm

我正在开发一个将发布到NPM的节点中的CLI。 由于它是一个CLI应用程序,我希望它在安装后包含在路径中,因此不需要输入“node my-app.js”来运行它。我希望它只使用“my-app”运行。

在package.json中,我包括:

"bin": { 
    "my-all" : "./my-app.js" 
 },

但这会导致通过NPM安装失败并出现此错误

错误:ENOENT,chmod'/ home / user1 / node_modules / my-app / my-app'

1 个答案:

答案 0 :(得分:4)

假设您使用某种unix(linux,osx),请将此行放在脚本的顶部:

#!/usr/bin/env node

还要确保将文件设置为可执行文件(chmod a+x my-all)。

这应该需要输入node my-app.js,然后只需输入./my-app.js即可。

关于npm打包的东西,我不确定它为什么会失败,但我猜测你的my-app.js的路径或位置存在问题。

如果可执行脚本放在PATH中的任何位置,那么它将像其他任何东西一样运行。如果运行which npm,您将看到npm可执行脚本所在的位置。在我的系统上,大多数节点可执行文件(或可执行的npm脚本)都进入/ usr / local / bin。我假设您的package.json可以设置为将其放在路径中的某个位置。如果您需要更改路径,请修改.profile或系统路径。