我在npm安装方面遇到了问题
我创建了一个名为A的项目
cd ~/projectA
npm install sails
安装完成后,但在运行sails命令时提示未找到。
我知道它已成功安装在~/projectA/node_modules
目录下。但执行文件无法被调用。我知道它被安装在~/projectA/node_modules/.bin
中。
如何在进入projectA文件夹时自动调用.bin文件?
我做错了什么吗?
我可以给你一个不太优雅的解决方案,它对我很有效。我只是在我的.bashrc文件中导出了我的路径。
export PATH="$PATH:./node_modules/.bin"
编辑:虽然已经有一段时间了,但我已经改变了我的策略,现在使用npm脚本。在上面的情况下,将package.json设置如下:
"scripts": {
"sails": "sails"
}
然后您可以使用它运行
npm run sails
或带参数
npm run sails -- <args>
export PATH="./node_modules/.bin:$PATH"
。 - Michael_Scharfnpm bin
命令来获取当前 Node.js 可执行文件所在目录的绝对路径。➤ 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]
这样可以避免相对路径的问题,特别是如果您将在构建系统中使用此命令,并在子目录中调用该命令时。
export PATH=$(npm bin):$PATH
alias snpm='export PATH=$(npm bin):$PATH'
sails generate foo
这样的命令,您需要全局安装npm模块。npm install -g sails
./node_modules/sails/bin/sails.js generate foo
sails(https://github.com/balderdashy/sails)的官方说明建议:
使用命令行工具安装最新的稳定版本:
sudo npm -g install sails
/usr/local/bin
的目录中,该目录应位于您的 $PATH
中。./node_modules/.bin
目录中(因此运行 ./node_modules/.bin/sails ...
)。在本地安装你喜欢的包(例如json-diff):
cd ~ && npm install json-diff
为其创建别名(将其保存在您的~/.xxxxrc文件中):
alias diffj "\`npm bin\`/json-diff !*"
然后,对于比较两个JSON:
diffj old.json new.json
~/.bashrc
文件中,我有以下内容:function nbin {
local dir;
dir=$(npm bin)
if [ -d "$dir" ]; then
( # subshell to not change this shell's $PATH
PATH=$dir:$PATH
eval "$@"
)
else
echo "\"$dir\" is not an npm binary directory." >&1
return 1
fi
}
然后我可以在.bin
目录中运行可执行文件foo
,如下:
nbin foo
~/projectA/node_modules/.bin
而不是~/projectA/node_modules/sails/bin
下面吗?你所说的“source”是什么意思? - verybadalloc