Node-Sass安装失败引起的思考

在mac OS或liunx系统下,有时候在安装node-sass时会出现,Permissions Errorsnode

可能出现的状况是这样:linux

loop reinstall


阅读后你将获得什么git

  1. 你将成功的解决node-sass安装不了苦恼(相同或相似的问题)
  2. 不单单是node-sass,其余模块如此类问题,一样能够解决
  3. 你将得到处理此类问题的,多种解决方案
  4. 你将了解到出现此类问题的缘由,以及如何避免此类问题

错误分析

找到输出信息里的关键词user "root" does not have permission to access the dev dirgithub

貌似是权限问题,但有时候是root用户了,为何会有权限问题?npm

解决问题的方案有下面几种:sass

方案一 添加参数(--unsafe-perm)

在安装node-sass时,使用参数--unsafe-permbash

例如:工具

npm install --unsafe-perm node-sass
复制代码

解析:oop

--unsafe-perm 在root下默认值为false,其余的默认值为trueui

设置为true,在run package script时会切换UID/GID 明确设置为false,在非root用户下安装会失败

方案二 添加参数(--user=root)

在安装node-sass时,使用参数--user=root

例如:

npm install --user=root node-sass
复制代码

该参数指定了再执行脚本时使用的帐号(UID),默认是nobody

方案四 修改现有node的权限

若是你是直接使用了已经编译后的node版本

那么你解压以后的目录权限多是这样的

drwxrwxr-x  7 dev  dev  4.0K 3月  24 11:25 node-v8.10.0-linux-x64
复制代码

也多是这样的

drwxrwxr-x  7 500  500  4.0K 3月  24 11:25 node-v8.10.0-linux-x64
复制代码

这里就须要修改node目录的权限为root

chown root:root node-v8.10.0-linux-x64
复制代码

方案四 从新安装node(推荐使用nvm)

nvm是个node版本管理工具,能够方便的下载安装node,而且能够方便的切换node版本

这是直接贴上nvm地址,如何安装看文档

方案五 npm提供的解决方案(How to Prevent Permissions Errors)

## 建立.npm-global目录
 mkdir ~/.npm-global
 ## 设置
 npm config set prefix '~/.npm-global'
 export PATH=~/.npm-global/bin:$PATH
 source ~/.profile

复制代码

经过上述方法的其中一种,就能够解决问题。



参考

相关文章
相关标签/搜索