NPM:如何获取./node_modules/.bin文件夹?

Kit*_* Ho 12 node.js npm sails.js

我在npm安装时遇到问题

我创建了一个项目说项目A.

cd ~/projectA
npm install sails
Run Code Online (Sandbox Code Playgroud)

但安装后找不到sails命令.

我知道它已成功安装在~/projectA/node_modules目录中.但无法获取可执行文件.我知道它已安装~/projectA/node_modules/.bin

每当我进入这个projectA文件夹时,如何自动获取.bin?

我做错了什么吗?

bma*_*ity 15

我可以给你一个不雅的解决方案,这对我有用.我刚刚在.bashrc文件中导出了我的路径.

export PATH="$PATH:./node_modules/.bin"
Run Code Online (Sandbox Code Playgroud)

编辑:已经有一段时间了,但我改变了策略,改为使用npm脚本.在上面的例子中,设置package.json如下:

"scripts": {
    "sails": "sails"
}
Run Code Online (Sandbox Code Playgroud)

然后你可以运行

npm run sails
Run Code Online (Sandbox Code Playgroud)

或者带参数

npm run sails -- <args>
Run Code Online (Sandbox Code Playgroud)

  • 我先把node_modules/.bin放在:`export PATH ="./ node_modules/.bin:$ PATH"` (6认同)

bri*_*ice 12

您应该使用该npm bin命令获取当前节点bin目录的绝对路径.

例如:

? lessc
bash: lessc: command not found
? npm bin
/home/brice/[...]/node_modules/.bin
? export PATH=$(npm bin):$PATH
? lessc --version
lessc 1.7.3 (Less Compiler) [JavaScript]
Run Code Online (Sandbox Code Playgroud)

这避免了相对路径的问题,特别是如果您要在将在子目录中调用命令的构建系统中使用它.