我有一个简单的bash文件修复了我系统上的npm
权限。它就像这样
npm=`npm config get prefix`
echo "$npm"
if [[ $npm = "/usr/local" ]]
then
echo "Yes it's /usr/local"
echo $npm/{lib/node_modules,bin,share}
sudo chown -R $(whoami) $npm/{lib/node_modules,bin,share}
echo "Complete"
elif [[ $npm = "/usr" ]]
then
echo "Uhhohh it's /usr gotta use a different method"
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
echo "No"
fi
npm install -g forever
npm install -g pm2
npm install -g bower
这在我的机器上工作正常。但不是我的亚马逊ex2实例。我在我的AWS EC2实例上运行ubuntu 16.04 LTS,在本地系统上运行Ubuntu 15.04。我得到的错误是npm-permission.sh: line 2: =/usr: No such file or directory
这是第二行。有什么问题?为什么不起作用?
答案 0 :(得分:0)
所以@Cyrus在评论中建议的更改我修改了脚本,如果[[$ npm ='']]使其工作。这是工作脚本。
npm=$(npm config get prefix)
echo "$npm"
if [[ $npm = "/usr/local" ]]
then
echo "Yes it's /usr/local"
echo $npm/{lib/node_modules,bin,share}
sudo chown -R $(whoami) $npm/{lib/node_modules,bin,share}
echo "Complete"
elif [[ $npm = "/usr" ]]
then
echo "Uhhohh it's /usr gotta use a different method"
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo "export PATH=~/.npm-global/bin:$PATH" >> ~/.profile
source ~/.profile
echo "No"
fi
我仍然不知道它是如何工作的,但确实如此。一些bash专家可能会对它有所了解。