【问题标题】:error /node_modules/node-sass: Command failed错误/node_modules/node-sass:命令失败
【发布时间】:2020-06-09 04:01:32
【问题描述】:

当我尝试在本地安装 vue store front 但尝试“yarn install”命令时出现以下错误。我该如何解决这个错误?我该如何解决这个错误?

error /var/www/html/vue-storefront/node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments: 
Directory: /var/www/html/vue-storefront/node_modules/node-sass
Output:
Building: /usr/bin/node /var/www/html/vue-storefront/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli   '/usr/bin/node',
gyp verb cli   '/var/www/html/vue-storefront/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library='
gyp verb cli ]
gyp info using node-gyp@3.8.0
gyp info using node@13.9.0 | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "/usr/bin/python3.6" in the PATH
gyp verb `which` succeeded /usr/bin/python3.6 /usr/bin/python3.6
gyp ERR! configure error 
gyp ERR! stack Error: Command failed: /usr/bin/python3.6 -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "<string>", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                                ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack 
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:303:12)
gyp ERR! stack     at ChildProcess.emit (events.js:321:20)
gyp ERR! stack     at maybeClose (internal/child_process.js:1026:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
gyp ERR! System Linux 4.15.0-88-generic
gyp ERR! command "/usr/bin/node" "/var/www/html/vue-storefront/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /var/www/html/vue-storefront/node_modules/node-sass
gyp ERR! node -v v13.9.0

【问题讨论】:

  • 它失败了,因为这里使用了python3。在包含python = "/usr/bin/python2.7" 的项目文件夹中创建一个.npmrc 文件并安装。据link称,目前还不支持python 3.x.x。
  • 嗨@NaceurBouhamed,我试过了,但它不起作用并给出同样的错误
  • 我在节点高山图像上遇到了同样的问题,如果它有帮助github.com/nodejs/docker-node/issues/282

标签: node.js vue.js yarnpkg


【解决方案1】:

使用yarn 全局安装node-sass

或者 将node-sass 添加到您的项目中

【讨论】:

  • 嗨@Eren 我试过了,但它给了我同样的错误
  • @Adil 我在这个 repo 中下载了示例 StoreFront 并简单地调用了 npm install 没有抛出错误。其实我不是纱线专家,但你也可以尝试清理纱线缓存和全局下载的文件并重新安装yarn。顺便说一句,我正在使用 macOS Catalina。
  • 感谢您的信息。实际上我以其他方式将 nodejs 与 magento2 一起使用,它工作正常
【解决方案2】:

只需升级 yarn.lock 文件中的 sass 版本即可。 对于节点 14,node-sass 的适当版本是 4.14
所以适应你的节点版本。

【讨论】:

  • 这对于节点 16 来说并没有完全到达那里 - 我的 package.json 指定了 webpacker v4.3.0 并且它包含 node-sass 作为依赖项。将webpacker 更新为5.3.0 是我的解决方案。
【解决方案3】:

面临同样的问题。如果您查看错误堆栈,它会显示:

Error: Command failed: /usr/bin/python3.6 -c import sys; print "%s.%s.%s" % sys.version_info[:3];
   File "<string>", line 1
     import sys; print "%s.%s.%s" % sys.version_info[:3];
                                ^
 SyntaxError: invalid syntax

它正在尝试使用 Python2,但使用了不受支持的 Python3。

我的系统在使用python 命令调用时运行 Python3,因此我通过安装 Python2 并将其别名为 python 命令来解决此问题:

alias python=pyhton2.7

【讨论】:

  • 你好,上面的命令是在哪里添加的?我遇到了同样的错误@RottenCandy
  • @Akhila 在运行安装命令之前在 shell 中运行它,或者把它放在 .bashrc 或类似的地方(如果你在 Linux 上)。
  • 你可以使用npm config set python python2
【解决方案4】:

我有同样的问题将 node-sass 版本升级为与 node 版本相同。用纱线运行:

yarn add node-sass

这将升级版本并修复问题

【讨论】:

    【解决方案5】:

    我通过在 windows os 上安装 python 2.7 版本解决了这个问题。我之前安装了 Python 3。出现此错误是因为 python 版本 3。

    【讨论】:

      【解决方案6】:

      我的解决方案使用节点 v10.19.0

      https://github.com/nodejs/docker-node/issues/1149#issuecomment-552705885
      

      【讨论】:

      • 我在尝试在 EC2 上复制站点时遇到了这个问题 - 这让我想仔细检查我是否安装了用于开发站点的相同版本的 Node。我没有。
      【解决方案7】:

      这里的解决方案对我不起作用。 直到我删除 node_modules 文件夹和 yarn.lock。

      rm -rf node_modules
      rm yarn.lock
      yarn instal
      

      【讨论】:

      • 在我的情况下,它是一个子依赖,甚至没有列在 package.json 中。问题出在 yarn.lock / package-lock.json 中。从 github 墓地恢复项目时,这似乎是一个常见问题
      【解决方案8】:

      我在容器化 VueJs 应用程序时遇到了这个问题。 我之前使用 node:15.12.0-alpine 标记作为基本映像,但是一旦我更改为使用 debian-stretch 的完整节点映像 (node:15.12.0),问题就得到了解决。

      【讨论】:

        【解决方案9】:

        尝试安装 sass 而不是 node-sass。对我来说效果很好。

        yarn remove node-sass
        yarn add sass
        

        【讨论】:

        • 这个对我有用!非常感谢!
        • 也为我工作
        【解决方案10】:

        有时不显示正确的错误,更新节点版本重试安装node-sass和sass-loader

        【讨论】:

          【解决方案11】:

          我正在运行Rails 6,由于某种原因,它正在拉动webpacker 4.3.0,它拉动node-sass 4.3.0,而不是截至本文发布之日最新的6.0.0

          对我有用的是:

          1. 删除node_module 文件夹、package-lock.jsonyarn.lock
          2. 在我的package.json 中,我升级了rails/webpacker: 5.3.0
          3. 然后我重新运行yarn install
          4. 然后我跑了yarn add node-sass

          在尝试了以上所有方法之后,这就像一个魅力。

          我相信这些是确切的步骤,尽管老实说,我尝试了很多东西,但都没有成功,但我终于成功了,所以我可能错过了一步,但我做到了我最好为任何未来沮丧的灵魂重新创造它。

          【讨论】:

          • 第 4 步。在我的情况下不需要
          • 没有为我工作。它显示:gyp ERR! cwd /Users/reinier/src/00_private/ror/reiniergarcia/node_modules/node-sass gyp ERR!节点 -v v16.3.0 gyp 错误! node-gyp -v v3.8.0
          • 谢谢,这是让我的项目在 M1 Mac 上运行的最后一步!
          • 我所做的只是第 2 步,然后运行 ​​yarn,这对我有用。
          • 只需执行第 2 步和第 3 步即可。谢谢!
          【解决方案12】:

          它失败了,因为这里使用了 python3。在中创建一个 .npmrc 文件 包含 python = "/usr/bin/python2.7" 的项目文件夹并安装。 根据链接,尚不支持 python 3.x.x。 – NaceurBouhamed 20 年 2 月 25 日 12:28

          ****python = "本地路径/python27/python.exe"

          已解决

          【讨论】:

            【解决方案13】:

            我遇到了同样的问题,我通过以下步骤解决了:

            1. 如果您使用的是 Apple M1 芯片,请使用 Rosetta 2 运行终端(可选,仅当您安装了带有 Rosetta 的节点时才需要)
            2. 在您的package.json 中检查您的node-sass 版本并与下表进行比较:
            NodeJS Supported node-sass version Node Module
            Node 16 6.0+ 93
            Node 15 5.0+ 88
            Node 14 4.14+ 83
            Node 13 4.13+, <5.0 79
            Node 12 4.12+ 72
            Node 11 4.10+, <5.0 67
            Node 10 4.9+, <6.0 64
            Node 8 4.5.3+, <5.0 57
            Node <8 <5.0 <57
            1. 检查您的节点版本:node --version
            2. 根据你的node-sass安装Nodejs版本,如果你使用的是NVM,运行:nvm use DESIRED_VERSION
            3. clean old node_modules 删除文件夹或在终端上键入:rm -rf node_modules
            4. 运行:npm install

            资源:

            【讨论】:

            • 谢谢!你的建议有帮助。我在没有使用 Rosetta 的情况下修复了它。我刚刚安装了node js的兼容版本,它工作了。
            • 我正在运行 Angular 并将 package.json 中的 node-sass 更新为 6.0.1 以匹配我的节点 16... 成功了。
            • 谢谢!这是一个很好的暗示。我不得不降级我的节点版本并且它起作用了。
            • 您可以使用node --version检查您当前的终端节点版本并使用nvm use 14切换节点版本,以便使用正确的节点版本安装依赖项。
            • 谢谢安吉洛!我将我的节点从 17 降级到 13,现在它运行了。我一直在等到 Rails 7 发布的那一天,我们摆脱了那个 webpacker!看来 node-sass 不是它上面唯一的一个旧包
            【解决方案14】:

            我在我的 package.json 文件中将节点版本从 16.0 更改为 14.x 并且它工作正常。

            【讨论】:

            • 它也对我有用。我想知道为什么 16 不起作用。
            【解决方案15】:

            另一种选择是更新您的 PATH 环境变量以指向 Python2 而不是 Python3(从 PATH 中删除 Python3 目录)

            【讨论】:

              【解决方案16】:

              使用 gulp 我得到“Node Sass 找不到适合您当前环境的绑定:Linux 64-bit with Node.js 12.x

              找到以下环境的绑定:

              • Linux 64 位,运行时不受支持 (93)

              这通常是因为您的环境在运行npm install 后发生了变化。 运行 npm rebuild node-sass 下载当前环境的绑定。”

              所以我运行npm rebuild node-sass 并且成功了!然后 npm install 一切正常。

              【讨论】:

                【解决方案17】:

                我在 Rails 应用上遇到同样的问题已经有一段时间了,通过升级 webpacker 解决了:

                # check your Gemfile for version restrictions
                bundle update webpacker
                
                # overwrite your changes to the default install files and revert any unwanted changes from the install
                rails webpacker:install
                
                # yarn 1 instructions
                yarn upgrade @rails/webpacker --latest
                yarn upgrade webpack-dev-server --latest
                

                见:https://github.com/rails/webpacker#upgrading

                追逐439的道具:https://github.com/sass/node-sass/issues/2447

                【讨论】:

                  【解决方案18】:

                  TBH 我的问题是我尝试“npm install angular-cli”而不是“npm install @angular/cli”,希望这可以帮助像我这样的其他傻瓜:)

                  【讨论】:

                    【解决方案19】:

                    除了建议的解决方案之外,我发现有时yarn.lock 具有node-gyp 锁定版本node-sass。 当我将它从 3.8.0 更改为 8.4.1 时,一切正常。

                    【讨论】:

                      【解决方案20】:

                      如果是 Rails 项目,升级 webpacker 就可以了。

                      yarn add @rails/webpacker
                      

                      【讨论】:

                        猜你喜欢
                        • 2019-04-03
                        • 1970-01-01
                        • 2021-12-18
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-05-18
                        • 2022-01-15
                        • 2018-10-16
                        • 1970-01-01
                        相关资源
                        最近更新 更多