Mac npm node sudo 权限问题
如下所示,有点蒙蔽了,求帮助:
HRX-MackBook:practice Ruxin$ sudo npm install -g gulp-imagemin
Password:
> gifsicle@3.0.4 postinstall /usr/local/lib/node_modules/gulp-imagemin/node_modules/gifsicle
> node lib/install.js
⚠ EACCES: permission denied, mkdir '/usr/local/lib/node_modules/gulp-imagemin/node_modules/gifsicle/vendor'
⚠ gifsicle pre-build test failed
ℹ compiling from source
/usr/local/lib/node_modules/gulp-imagemin/node_modules/onetime/index.js:15
throw new Error(fnName + ' can only be called once.');
^
Error: callback() can only be called once.
at onetime (/usr/local/lib/node_modules/gulp-imagemin/node_modules/onetime/index.js:15:11)
at /usr/local/lib/node_modules/gulp-imagemin/node_modules/download/index.js:156:5
at ConcatStream.<anonymous> (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/index.js:36:43)
at emitNone (events.js:110:20)
at ConcatStream.emit (events.js:207:7)
at finishMaybe (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:607:14)
at endWritable (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:615:3)
at ConcatStream.Writable.end (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:571:41)
at DuplexWrapper.onend (/usr/local/lib/node_modules/gulp-imagemin/node_modules/stream-combiner2/node_modules/readable-stream/lib/_stream_readable.js:570:10)
at Object.onceWrapper (events.js:314:30)
> jpegtran-bin@3.2.0 postinstall /usr/local/lib/node_modules/gulp-imagemin/node_modules/jpegtran-bin
> node lib/install.js
⚠ EACCES: permission denied, mkdir '/usr/local/lib/node_modules/gulp-imagemin/node_modules/jpegtran-bin/vendor'
⚠ jpegtran pre-build test failed
ℹ compiling from source
/usr/local/lib/node_modules/gulp-imagemin/node_modules/onetime/index.js:15
throw new Error(fnName + ' can only be called once.');
^
Error: callback() can only be called once.
at onetime (/usr/local/lib/node_modules/gulp-imagemin/node_modules/onetime/index.js:15:11)
at /usr/local/lib/node_modules/gulp-imagemin/node_modules/download/index.js:156:5
at ConcatStream.<anonymous> (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/index.js:36:43)
at emitNone (events.js:110:20)
at ConcatStream.emit (events.js:207:7)
at finishMaybe (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:607:14)
at endWritable (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:615:3)
at ConcatStream.Writable.end (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:571:41)
at DuplexWrapper.onend (/usr/local/lib/node_modules/gulp-imagemin/node_modules/stream-combiner2/node_modules/readable-stream/lib/_stream_readable.js:570:10)
at Object.onceWrapper (events.js:314:30)
> optipng-bin@3.1.4 postinstall /usr/local/lib/node_modules/gulp-imagemin/node_modules/optipng-bin
> node lib/install.js
⚠ EACCES: permission denied, mkdir '/usr/local/lib/node_modules/gulp-imagemin/node_modules/optipng-bin/vendor'
⚠ optipng pre-build test failed
ℹ compiling from source
/usr/local/lib/node_modules/gulp-imagemin/node_modules/onetime/index.js:15
throw new Error(fnName + ' can only be called once.');
^
Error: callback() can only be called once.
at onetime (/usr/local/lib/node_modules/gulp-imagemin/node_modules/onetime/index.js:15:11)
at /usr/local/lib/node_modules/gulp-imagemin/node_modules/download/index.js:156:5
at ConcatStream.<anonymous> (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/index.js:36:43)
at emitNone (events.js:110:20)
at ConcatStream.emit (events.js:207:7)
at finishMaybe (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:607:14)
at endWritable (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:615:3)
at ConcatStream.Writable.end (/usr/local/lib/node_modules/gulp-imagemin/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:571:41)
at DuplexWrapper.onend (/usr/local/lib/node_modules/gulp-imagemin/node_modules/stream-combiner2/node_modules/readable-stream/lib/_stream_readable.js:570:10)
at Object.onceWrapper (events.js:314:30)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: gifsicle@3.0.4 (node_modules/gulp-imagemin/node_modules/gifsicle):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: gifsicle@3.0.4 postinstall: `node lib/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: jpegtran-bin@3.2.0 (node_modules/gulp-imagemin/node_modules/jpegtran-bin):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: jpegtran-bin@3.2.0 postinstall: `node lib/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: optipng-bin@3.1.4 (node_modules/gulp-imagemin/node_modules/optipng-bin):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: optipng-bin@3.1.4 postinstall: `node lib/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ gulp-imagemin@3.3.0
added 281 packages and updated 1 package in 66.047s
未加 sudo 时:
HRX-MackBook:~ Ruxin$ npm install -g gulp-imagemin
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/gulp-imagemin/node_modules
npm ERR! path /usr/local/lib/node_modules/gulp-imagemin/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/gulp-imagemin/node_modules'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules/gulp-imagemin/node_modules'
npm ERR! stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules/gulp-imagemin/node_modules\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules/gulp-imagemin/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/ruxin/.npm/_logs/2017-08-22T00_58_22_466Z-debug.log
本地环境版本:
node: v8.4.0;
npm: 5.3.0
有根据这个npm官方文档说明选项一操作,不过问题还是一样的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
npm官方文档对于这种问题有讲解,你改某个配置,把全局模块放到家目录这种有读写权限的位置就行了,以后都不用sudo.
https://docs.npmjs.com/gettin...
二进制包的问题,不知道是不是npm升级之后才有的问题。开sudo也没用。解决方案
注意
--unsafe-perms
参数不要使用
sudo
安装npm
。可能是你当初装node的时候的问题吧,用命令行安装比较麻烦,如果一开始啥都没有,得先装homebrew,可是还会依赖ruby,饶了一圈装完后,还会有别的问题。
还不如直接上官网,下载dmg格式的安装包,傻瓜式setup,还保证不会出错。只要node安装不出问题,后面装别的才没会少些问题。
楼主解决没?
npm install npm@latest -g,完美解决
我使用以下命令解决了我的问题
楼主解决没有?