配置: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?


当前回答

如果您的节点版本是12,请尝试sudo npm install node-sass@4.12.0。

其他回答

这对我来说很管用。我首先卸载node-sass。然后重新安装。

NPM卸载node-sass NPM install——save-dev node-sass

下面是解决方案:

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

享受吧!

编辑以解释选项(来自评论):

——save-dev被使用,这样你的应用程序就能在本地node_modules中找到这个模块。——save-dev将package添加到package.json中的devDependencies中。——不安全——perm用于以root身份运行安装脚本。为了避免sudo,请改用nvm。——不安全——烫发真的不需要,因为已经提到了sudo。因此,该命令基本上严格限制脚本以不惜任何代价安装node-sass。

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

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

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

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来确保在新环境和原始环境中有相同的版本,即它可以工作的版本,因为这通常是通过在不同的环境中使用不同的版本来实现的