Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript/npm安装路径解析不正确_Javascript_Node.js_Gruntjs_Npm - Fatal编程技术网

javascript/npm安装路径解析不正确

javascript/npm安装路径解析不正确,javascript,node.js,gruntjs,npm,Javascript,Node.js,Gruntjs,Npm,我正在开始一个JS项目的工作,我想使用bower、grunt等等qunit sinon是我的项目的主目录: tducin@home:~/Development/qunit-sinon (grunt)$ ll razem 192 drwxrwxr-x 5 tducin tducin 4096 sie 24 11:45 ./ drwxrwxr-x 3 tducin tducin 4096 sie 23 18:00 ../ drwxrwxr-x 5 tducin tducin 4096 s

我正在开始一个JS项目的工作,我想使用bower、grunt等等
qunit sinon
是我的项目的主目录:

tducin@home:~/Development/qunit-sinon (grunt)$ ll
razem 192
drwxrwxr-x 5 tducin tducin   4096 sie 24 11:45 ./
drwxrwxr-x 3 tducin tducin   4096 sie 23 18:00 ../
drwxrwxr-x 5 tducin tducin   4096 sie 23 18:18 bower_components/
-rw-rw-r-- 1 tducin tducin    458 sie 23 18:15 bower.json
drwxrwxr-x 8 tducin tducin   4096 sie 24 11:42 .git/
-rw-rw-r-- 1 tducin tducin    552 sie 23 20:46 .gitignore
-rw-rw-r-- 1 tducin tducin   1148 sie 24 11:41 Gruntfile.js
-rw-rw-r-- 1 tducin tducin    485 sie 23 18:26 index.html
-rw-rw-r-- 1 tducin tducin   1079 sie 23 20:45 LICENSE
drwxrwxr-x 4 tducin tducin   4096 sie 24 11:46 node_modules/
-rw-rw-r-- 1 tducin tducin 140356 sie 24 11:45 npm-debug.log
-rw-rw-r-- 1 tducin tducin    346 sie 24 11:44 package.json
-rw-rw-r-- 1 tducin tducin    324 sie 23 18:30 README.md
-rw-rw-r-- 1 tducin tducin   1402 sie 24 11:00 tests.js
我已经在全球安装了以下组件:node/npm、bower、grunt cli。我使用
grunt init gruntfile
来初始化我的
gruntfile.js
。我的
包.json的内容是:

tducin@home:~/Development/qunit-sinon (grunt)$ cat package.json 
{
  "engines": {
    "node": ">= 0.10.0"
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/tkoomzaaskz/qunit-sinon"
  },
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-jshint": "~0.10.0",
    "grunt-contrib-qunit": "~0.5.2",
    "grunt-contrib-watch": "~0.6.1"
  }
}
现在我想运行
npm install
来安装所有缺失的模块(那里很少有grunt插件自动添加到GrunFile.js),然后我得到以下错误:

tducin@home:~/Development/qunit-sinon (grunt)$ npm install
npm ERR! Error: EACCES, mkdir '/home/tducin/.npm/underscore/1.6.0'
npm ERR!  { [Error: EACCES, mkdir '/home/tducin/.npm/underscore/1.6.0']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/home/tducin/.npm/underscore/1.6.0',
npm ERR!   parent: 'jshint' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.13.0-34-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install"
npm ERR! cwd /home/tducin/Development/qunit-sinon
npm ERR! node -v v0.10.31
npm ERR! npm -v 1.4.23
npm ERR! path /home/tducin/.npm/underscore/1.6.0
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/home/tducin/.npm/underscore/1.6.0'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/tducin/Development/qunit-sinon/npm-debug.log
npm ERR! not ok code 0
npm希望在全球范围内安装—这就是为什么他希望拥有管理员权限。但这不是我想做的


我很确定这个错误的原因很明显,但我不知道。请解释为什么npm试图安装在
/home/tducin/.npm
(全局)而不是我的本地项目
node\u modules
目录中。

由于代表原因,我无法评论

调试日志中有什么内容吗?
/home/tducin/Development/qunit sinon/npm debug.log

它看起来不像是在尝试全局安装,因为全局模块通常位于
/usr/local/lib/node_模块
/usr/lib/node_模块

请张贴以下结果:

ls -l -a /home/tducin/ | grep npm

由于.npm文件夹可能已创建为根目录,因此,过了一段时间后,我遇到了类似的问题。事实上,我是
~/.npm
目录本身的所有者,而不是根目录。但是我的问题是,
~/.npm
的一些内容是我的,一些是root的。这就是为什么安装一些模块有效,而安装其他模块失败的原因。这可能是因为我错误地使用了npm安装

以下命令修复了该问题:

sudo chown -R tducin:tducin ~/.npm

你能查一下谁是~/.npm目录的所有者吗?看来其他一切都好。如果该目录的所有者不是当前用户,那么它就是当前用户-只需更改所有权。可能重复-您是对的-这是
~/.npm
的权限。非常感谢!