我有一个小型 Node 模块,它在 bin
目录中包含一个命令行脚本。
"bin": {
"generate": "./bin/generate.js"
}
generate.js
脚本可以正常执行。
如果我运行 npm install -g
,一切正常。但我不希望全局安装,只让命令 generate
从模块文件夹中工作。如果我从模块文件夹运行 npm install
,它会在 node_modules
子目录中正确安装所有依赖项。但是然后 generate
从命令中给我“没有这样的文件或目录”。
谢谢。
最佳答案
我从不使用 -g
安装 Node 模块。我对您的问题的解决方案是将其添加到我的 $PATH
# add this to ~/.bashrc, ~/.zshrc, or ~/.profile, etc
export PATH="./node_modules/.bin:$PATH"
现在,只要您在模块的根目录下,就可以访问任何已作为模块安装的二进制文件。
例如,less
通常安装有
npm install -g less
但是,如果您按上述方式修改了 PATH,则可以这样
cd my_node_module
npm install --save less
lessc less/style.less css/style.css
如果没有 PATH 修改,你会看到
command not found: lessc
如果你不想改变你的 PATH,你可以直接访问二进制文件
cd my_node_module
npm install --save lessc
./node_modules/.bin/lessc a.less a.css
是的,不再是 npm install -g ...
关于node.js - 可以在没有全局安装的情况下在 Node 模块中包含命令行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181072/