npm不会安装到node_modules中

时间:2014-05-16 19:03:28

标签: npm

我目前在一个包含node_modules目录

的目录中
ls
> coverage  etc  Gruntfile.js  lib  node_modules  npm-debug.log  package.json

在此目录中,npm install会吐出以下内容:

npm ERR! Error: Attempt to unlock grunt-contrib-jshint@0.10.0, which hasn't been locked npm ERR! at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1434:11) npm ERR! at cb (/usr/local/lib/node_modules/npm/lib/cache.js:675:5) npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:684:20 npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:1420:7 npm ERR! at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38 npm ERR! at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5) npm ERR! at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22) npm ERR! at Object.oncomplete (fs.js:107:15) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/npm/npm/issues>

我尝试了npm config set prefix /my/path/ --global,其中/ my / path /包含node_modules目录。我尝试使用-g --prefix = / my / path。显然没有办法改变我的安装目录。显然,设计中使用npm install工作的唯一方法是行不通的。

编辑:这是我在此期间必须使用的hacky解决方法。这显然不理想,但如果你的系统只有一个项目,那很好。

sudo npm install
sudo cp /usr/local/lib/node_modules /my/path/ -R

1 个答案:

答案 0 :(得分:3)

除非您没有包含此内容,否则此处的症状与全局安装位置无关。

npm install第一行输出中的错误表示您要解决的问题:

npm ERR! Error: Attempt to unlock grunt-contrib-jshint@0.10.0, which hasn't been locked

这表明您的解决方案与this other StackOverflow question中的解决方案相同,并且基于权限。快速搜索此错误文本还会产生许多与权限相关的类似解决方案。

检查目录权限以确保所有权合适。如果是,您也可以尝试sudo npm install,但最好的答案是解析目录权限,而不是依赖sudo