我正在使用Mac OS X 10.10.2
node -v v0.12.1
npm -v 2.5.1
通过npm install -g strongloop
安装strongloop软件包时,即使我通过
修复了权限,也只能使用sudo
$ sudo chown -R $USER /usr/local/bin
$ sudo chown -R $USER /usr/local/lib/node_modules
如果没有sudo,则会抛出EACCS错误http://pastebin.com/uJbjbXG3
/usr/local/bin/npm/node_modules/strongloop/bin/slc
存在。
有什么想法吗?
答案 0 :(得分:1)
根据错误消息的最后几行:
113 error error rolling back Error: EACCES, unlink '/Users/Simon/npm/bin/slc'
113 error error rolling back at Error (native)
113 error error rolling back { [Error: EACCES, unlink '/Users/Simon/npm/bin/slc'] errno: -13, code: 'EACCES', path: '/Users/Simon/npm/bin/slc' }
您可能已将npm
配置为使用非标准前缀,因为它正在将strongloop
安装到/Users/Simon/npm
而不是/usr/local
。
根据您的问题描述,/usr/local/bin/npm
是一个目录(或目录的符号链接)而不是文件,这是无用的。
我不确定你用什么方法来安装node和npm,但它似乎已经出错了。
至少,您应该sudo chown -R Simon ~/npm
,这样您就可以再次写入$HOME
内的目录和文件。
如果这是您第一次使用节点而您没有安装任何其他模块,您可能会发现使用nvm之类的东西更容易以不需要的方式安装节点和npm sudo
。
答案 1 :(得分:0)
我必须警告这是一个糟糕的解决方案,因为你不想在你的项目中拥有所有的strongloop框架我只是将这个答案用于解释目的。
您好(如果您不想进行全局安装)
我的问题有些类似,CLI给我发了同样的信息:
找不到SLC命令
但是我意识到我在本地安装了strongloop,我的意思是用以下命令安装了stronloop
npm install strongloop
也许您可以通过完整的路径找到slc executable
:
node node_modules/strongloop/bin/slc arc
或者您希望以简单的方式完成工作,将以下行添加到package.json(在脚本部分内):
"slc": "node node_modules/strongloop/bin/slc"
然后,输入您的控制台:
npm run-script slc arc
答案 2 :(得分:0)
一些新的研究表明,自从IBM收购该公司以来,不再维护StrongLoop特定的工具(包括slc
工具)。环回本身是积极维护的。
loopback-cli项目特别提到它提供了一个lb
命令行工具,可以“取代”strongloop的“旧版slc工具”。
答案 3 :(得分:-1)
如对可能解决方案的回复中所述。这是我的解决方案
npm config set prefix /usr/local