配置:macOS High Sierra,版本10.13.2,节点:v8.1.2 npm:5.0.3 当我在angularjs项目中运行npm start时,我得到这个错误:

ERROR in Cannot find module 'node-sass'

然后我运行:

npm i node-sass

现在我得到这个错误:

gyp: No Xcode or CLT version detected!
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1

为什么npm不安装node-sass?如何安装node-sass?


当前回答

我在使用Microsoft Visual Studio Code的集成git终端时遇到了这个错误。由于一些奇怪的原因,VS代码不允许我安装“node-sass”。然后我使用'Git Bash'(已经安装了Git)并运行以下命令: NPM安装node-sass 这对我很管用。我不知道为什么以及它是如何工作的。如果有人有任何解释,请告诉我。

其他回答

其中一种情况是安装后流程失败。在安装node-sass之后,将立即执行安装后脚本。这个过程需要Python和c++构建器。 日志'gyp:没有Xcode或CLT版本检测到!可能是因为它找不到任何c++构建器。因此,请尝试安装Python和任何c++构建器,然后将它们的目录放在环境变量中,以便npm可以找到它们。(我来自Windows)

根据node-sass github页面,支持的node.js版本因版本而异。

https://github.com/sass/node-sass

例子: 检查正在运行的节点版本。

node -v
-> v12.0.0

您需要node-sass v4.12+。所以你可以

npm install node-sass@4.12.0

或者如果4.12.0是最新版本

npm install node-sass@latest

(npm install node-sass在很多情况下会安装最新版本,但请记住,如果依赖项在package中,它并不总是安装最新版本(在本例中为4.12.0)。Json的写法是^3.0.0,~4.11.0) 在package.json中,波浪号(~)和插入号(^)有什么区别?

最后,在npm中使用sudo并不是一个好的实践。请参考这篇文章。 https://medium.com/@ExplosionPills/dont-use-sudo-with-npm-still-66e609f5f92

我通过安装v10.16.10节点版本解决了这个问题。

NPM install——save-dev——unsafe-perm node-sass

这个会变魔术的,你可以把它和sudo一起用

我在没有安装node-sass的情况下修复了这个问题:

npm install node-sass@4.12.0 --no-save --unsafe-perm