无法安装node-sass

7
我正在尝试安装node-sass,但是它一直无法安装。我已经尝试更新npm。
我输入了以下命令:sudo npm install -g node-sass
运行结果如下(从错误前一行开始):
gyp verb build dir attempting to create "build" dir: 
/Users/matt/node_modules/node-sass/build
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir 
'/Users/matt/node_modules/node-sass/build'
gyp ERR! System Darwin 17.7.0
gyp ERR! command "/usr/local/bin/node" 
"/Users/matt/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "- 
-verbose" "--libsass_ext=" "--libsass_cflags=" "-- 
libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/matt/node_modules/node-sass
gyp ERR! node -v v8.11.1
gyp ERR! node-gyp -v v3.7.0
gyp ERR! not ok
Build failed with error code: 1
npm WARN enoent ENOENT: no such file or directory, open                     
'/Users/matt/package.json'
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but         
none is installed. You must install peer dependencies yourself.
npm WARN matt No description
npm WARN matt No repository field.
npm WARN matt No README data
npm WARN matt No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.9.2 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.9.2 postinstall script.
npm ERR! This is probably not a problem with npm. There is 
likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/matt/.npm/_logs/2018-08-02T16_18_15_228Z- 
debug.log

我认为这个线程已经适当地解决了问题NPM node-sass安装失败 - Kazi Hasan Ali
8个回答

19
sudo npm install -g --unsafe-perm node-sass

这必须解决问题


1

您的目录'/Users/matt/node_modules/node-sass/build'存在权限问题,请右键单击Users/matt并转到属性取消只读选项,然后在同一窗口中移动到安全性检查每个用户是否为该文件夹提供了完全控制权限,否则将其更改为Everyone的完全控制权限。


当我运行Ionic教程时,我遇到了同样的问题,问题是在运行时安装了node-sass目录:> node-sass@4.9.0 install /Users/imacuser/MyIonicProject/node_modules/node-sass,导致与@Matt相同的错误:gyp ERR!stack Error: EACCES:permission denied,mkdir '/Users/matt/node_modules/node-sass/build'。如何设置一个不存在且由于被拒绝的权限而无法安装的目录的权限? - jimiayler
@jimiayler,问题出在你的父级目录,也就是你的项目文件夹,例如:angular-project > node modules,所以问题出在angular-project目录。 - Vaibhav Kumar Goyal
好的,您可以右键单击项目的父目录,然后转到安全选项卡,并授予“每个人”完全控制权限。同时,请检查您的父目录是否取消了只读属性,然后再尝试安装 @jimiayler - Vaibhav Kumar Goyal

1
尝试使用以下命令:

sudo npm install --save-dev  --unsafe-perm node-sass

1
"我可以帮你进行翻译。以下是需要翻译的内容:

解决方法,使其正常工作:

进入文件夹

"
username/.npm/node-sass // on linux
username/AppData/Roaming/npm-cache/node-sass //on windows

在内部创建目录/4.9.2

从这个页面https://github.com/sass/node-sass-binaries获取特定版本并将此文件放入4.9.2文件夹中。 现在尝试运行npm安装-应该可以工作!


0

我之前也遇到过类似的问题,如果以上方法都无法解决,可以先尝试移除代理。
我在安装node-sass时遇到了npm ERR! code ECONNREFUSED的问题,所以请检查您的日志是否出现了这种情况。
如果存在代理,请使用以下命令将其移除:

npm config set proxy null
npm config set https-proxy null

接下来,将npm设置为从官方软件包注册表下载:

npm config set registry http://registry.npmjs.org/

然后使用以下命令安装您的包:npm install node-sass


0

对我来说,这些方法都没有起作用,我遇到了同样的问题,但是我通过另一个应用程序解决了它,该应用程序在供应商文件夹中具有node-sass的二进制文件,因此我使用sudo mv命令将该文件夹移动到我的其他项目中,然后它就能正常运行了。我知道这可能不是一个好的解决方案,但这是我尝试过并且有效的方法。


你能再解释一下吗?你从哪个应用程序获取了二进制文件? - mypetlion
我的本地计算机在安装完整的node_modules文件夹中的full node-sass时没有问题(因此它实际上具有node_sass的二进制文件)。我使用sudo mv命令将带有vendor文件夹的node-sass文件与二进制文件移动到没有二进制文件的node_module/node-sass文件夹中。再次强调,我认为这不是最好的解决方案,但它在某种程度上让我成功了。 - scotth527

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接