Chr*_*son 7 path command-line-interface node.js npm
我有一个小的Node模块,在bin目录中包含一个命令行脚本.
"bin": {
"generate": "./bin/generate.js"
}
Run Code Online (Sandbox Code Playgroud)
该generate.js脚本可以正常执行.
如果我跑,这一切都很好npm install -g.但是我不想全局安装,只能generate在模块文件夹中使用命令.如果我npm install从模块文件夹运行,它会在node_modules子目录中正确安装所有依赖项.但是generate从命令那样给我"没有这样的文件或目录".
谢谢.
mač*_*ček 11
我从不使用安装节点模块-g.我的问题的解决方案是将此添加到我的$PATH
# add this to ~/.bashrc, ~/.zshrc, or ~/.profile, etc
export PATH="./node_modules/.bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
现在,只要您在模块的根目录中,就可以访问已作为模块安装的任何二进制文件.
例如,less通常安装
npm install -g less
Run Code Online (Sandbox Code Playgroud)
但是,如果您按上述方法修改了PATH,则可能会出现类似情况
cd my_node_module
npm install --save less
lessc less/style.less css/style.css
Run Code Online (Sandbox Code Playgroud)
没有PATH修改,你会看到
command not found: lessc
Run Code Online (Sandbox Code Playgroud)
如果您不想改变PATH,可以直接访问二进制文件
cd my_node_module
npm install --save lessc
./node_modules/.bin/lessc a.less a.css
Run Code Online (Sandbox Code Playgroud)
耶,没有了 npm install -g ...
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |