配置: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?
Node-sass没有被安装,这可能是许多原因之一
您没有安装
npm install node-sass --save-dev
您有一个权限错误
sudo npm install --save-dev --unsafe-perm node-sass
你有一个内存问题,因为它试图使它(构建从c代码在你的平台),这适用于某些平台和节点版本
node --max_old_space_size=8000 $(which npm) install node-sass --save-dev
你的节点和npm版本不兼容,这很可能在构建过程中产生了失败,
在这种情况下,使用n或nvm来确保在新环境和原始环境中有相同的版本,即它可以工作的版本,因为这通常是通过在不同的环境中使用不同的版本来实现的
根据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