【问题标题】:ERROR in Cannot find module 'node-sass'找不到模块'node-sass'中的错误
【发布时间】:2018-06-17 06:57:57
【问题描述】:

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

【问题讨论】:

  • 运行npm install --save-dev node-sass

标签: angularjs node.js npm macos-high-sierra


【解决方案1】:

解决办法如下:

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

享受吧!

编辑解释选项(来自 cmets):

--save-dev 用于使您的应用程序能够在本地 node_modules 中找到该模块。 --save-dev 将包添加到 package.json 中的 devDependencies。 --unsafe--perm 用于以 root 身份运行安装脚本。为避免使用 sudo,请改用 nvm。 --unsafe--perm 真的不需要,因为 sudo 已经提到过。所以该命令基本上是不惜一切代价地安装 node-sass 的脚本。

【讨论】:

  • 这行得通,但如果有人能补充一下为什么这行得通,而简单的npm install node-sass 不起作用,那将是有启发性的。
  • @AlexOnozor 这是如何工作的?
  • 我只需要在 dev dependencies npm install --save-dev node-sass 中安装 node-sass
  • 这对我有用。我在安装节点 12 时开始遇到这个问题(因为我在 Angular 8 中开始了一个新的 Angular 项目)。我的 Angular 6 应用程序将不再构建并抛出有关 node-sass 的错误。全部修复:)
  • --save-dev 用于使您的应用能够在本地 node_modules 中找到该模块。 --save-dev 将包添加到 package.json 中的 devDependencies。 --unsafe--perm 用于以 root 身份运行安装脚本。为避免使用 sudo,请改用 nvm。 --unsafe--perm 真的不需要,因为 sudo 已经提到过。因此,该命令基本上可以不惜一切代价地安装 node-sass 的脚本。
【解决方案2】:

我也遇到了完全相同的问题,我尝试了上述所有答案但无法解决,下面是解决我问题的命令。

npm install sass-loader sass webpack --save-dev

https://www.npmjs.com/package/sass-loader

【讨论】:

    【解决方案3】:

    我不得不卸载然后重新安装 Xcode。这为我解决了错误。

    【讨论】:

      【解决方案4】:

      npm uninstall node-sass 然后npm i node-sass 对我不起作用。

      对我有用的解决方案是npm install --save-dev node-sass

      快乐编码..

      【讨论】:

        【解决方案5】:

        将此版本用于节点版本 v 14

        "node-sass": "^5.0.0"

        【讨论】:

          【解决方案6】:

          "node-sass": "4.5.3" 版本似乎有问题,请尝试更新到最新版本。比如你可以尝试添加^"node-sass": "^4.5.3"获取最新版本

          【讨论】:

            【解决方案7】:

            你必须在 package.json 的 dev 部分安装 node-sass

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

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                【解决方案9】:

                我在 Node 12.9.0 上安装 node-sass 时遇到了同样的问题

                一旦切换到 Node 10.19.0,问题就消失了。

                参考:https://github.com/sass/node-sass/issues/2632

                【讨论】:

                  【解决方案10】:

                  我没有通过这个命令安装 node-sass 就解决了这个问题:

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

                  【讨论】:

                    【解决方案11】:

                    我在 Angular 中安装依赖项时遇到了同样的错误。我已经尝试过上述技术,但在我删除之前在运行 Node v11 时创建的package-lock.json 之前,它们都没有奏效。

                    现在我使用的是 Node v12,所以我就是这样解决的。

                    如果你有package-lock.json,我重复一遍,删除它,归档然后安装依赖项。

                    【讨论】:

                      【解决方案12】:

                      这对我有用。我首先卸载 node-sass。然后重新安装。

                      npm 卸载 node-sass
                      npm install --save-dev node-sass

                      【讨论】:

                        【解决方案13】:

                        我的问题是,当我执行命令时,网络过滤器不允许我下载node-sass package

                        npm i
                        

                        安装 Windows 构建工具后

                        npm i -g windows-build-tools
                        

                        它自己构建node-sass,现在我可以使用它了。

                        PS:我之前也安装了 Python 2.7.17,但我认为没有帮助。

                        【讨论】:

                          【解决方案14】:

                          只需在终端运行此命令,它将安装最新版本的 node-sass

                          npm install node-sass

                          【讨论】:

                          • 3 次否定是没有用的,没有一个给出理由。为什么?
                          【解决方案15】:

                          根据 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.json 中的依赖项写成 ^3.0.0, ~4.11,它并不总是安装最新版本(在本例中为 4.12.0) .0) What's the difference between tilde(~) and caret(^) in package.json?

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

                          【讨论】:

                          • 这个解决方案对我有用......我使用的是 2010 年的旧版 macbook,osx 10.12,并且匹配这里描述的 node-sass 版本解决了它
                          • "npm install node-sass@4.12.0" - 解决了我的问题 - 谢谢
                          • npm install node-sass@4.12.0 为我工作
                          【解决方案16】:

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

                          这会很神奇,你可以用 sudo 来使用它

                          【讨论】:

                            【解决方案17】:

                            它失败了,因为我使用的是最新版本的节点 (12.7.0),然后我必须显式安装最新版本的 node-sass

                            npm install node-sass@4.12.0

                            【讨论】:

                              【解决方案18】:

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

                              【讨论】:

                                【解决方案19】:

                                升级到最新版本的 nodeJS 解决了我的问题

                                【讨论】:

                                  【解决方案20】:

                                  在我的情况下,我还必须执行:

                                  npm install sass-loader
                                  

                                  解决问题

                                  【讨论】:

                                    【解决方案21】:

                                    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
                                    

                                    你的 node 和 npm 版本不兼容,很可能在构建过程中产生了失败,

                                    在这种情况下,请使用 n 或 nvm 确保您在新环境和原始环境中拥有相同的版本,即它确实可以工作的环境,因为这通常是在不同的环境中使用不同的版本

                                    【讨论】:

                                      【解决方案22】:

                                      我在尝试运行项目时遇到了类似的问题。 首先我卸载了当前版本

                                      npm uninstall node-sass
                                      

                                      然后我重新安装到最新版本

                                      npm install node-sass
                                      

                                      【讨论】:

                                        【解决方案23】:

                                        您应该尝试检查npm install生成的日志。

                                        我也遇到过同样的问题,发现路径(环境变量)中找不到python2的错误。

                                        安装 Python 后,一切正常。

                                        【讨论】:

                                          【解决方案24】:

                                          我在本地机器上检查了 Node 版本,即v10.11.0

                                          然后当我检查我的开发机器时,出现错误的地方,它的 Node 版本为V.10.8.0

                                          在我的开发机器中将 Node 升级到 v10.11.0 解决了这个问题。

                                          希望这会有所帮助。

                                          【讨论】:

                                          • 这是对我有用的答案。谢谢。
                                          【解决方案25】:

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

                                          【讨论】:

                                          • 我怀疑这是因为您需要以管理员身份运行
                                          【解决方案26】:

                                          我也遇到过这个错误。以上方法都不适合我。请按照此操作,因为它对我有用。

                                          通过 npm 在 Ubuntu 16 中安装 node-sass :-

                                          您可以使用 npm 5.2.0 版本安装

                                          如果你使用的是非虚拟机:-

                                          非虚拟机安装 8.2.1 非虚拟机使用 8.2.1 npm 安装节点-sass

                                          如果您单独使用 npm,则将 npm 版本升级或降级到 5.2.0

                                          npm 安装节点-sass

                                          【讨论】:

                                            【解决方案27】:

                                            npm install node-sass 在大多数情况下都会完成这项工作,因为它会添加缺少的 sass npm 依赖模块不存在,或者它会覆盖以前崩溃的版本。

                                            Mac 用户在上述命令前使用sudo

                                            在 Windows 机器上npm rebuild node-sass --force 可能不适用于某些用户,因为它本质上是在说,“请强制 npm 为我重建 sass 节点模块”。它将无法工作,因为该模块不存在。

                                            每当您在初始安装时执行npm install 时,sass 模块都没有安装,这就是出现此问题的原因。

                                            【讨论】:

                                              【解决方案28】:

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

                                              【讨论】:

                                                【解决方案29】:

                                                如果你运行

                                                npm install node-sass
                                                

                                                还是不行记得修改文件夹的权限

                                                【讨论】:

                                                  【解决方案30】:

                                                  它对我有用...

                                                  sudo npm rebuild node-sass --force
                                                  

                                                  【讨论】:

                                                  • 给出一些解释,以便于理解解决方案
                                                  猜你喜欢
                                                  • 2022-06-16
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 2016-01-23
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 2023-02-20
                                                  • 2018-09-03
                                                  相关资源
                                                  最近更新 更多