ChatGPT解决这个技术问题 Extra ChatGPT

错误/node_modules/node-sass:命令失败

当我尝试在本地安装 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.xx。
嗨@NaceurBouhamed,我试过了,但它不起作用并给出同样的错误
如果有帮助,我在节点 alpine 图像上遇到了同样的问题github.com/nodejs/docker-node/issues/282
node 是有史以来最糟糕的开发技术:D 启动项目总是手动修复依赖项的噩梦。

Â
Ângelo Polotto

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

如果您使用的是 Apple M1 芯片,请使用 Rosetta 2 运行终端(可选,仅当您使用 Rosetta 安装了 Node 时才需要)检查 package.json 中的 node-sass 版本并与下表进行比较:

NodeJS 支持的 node-sass 版本 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 节点 8 4.5.3+, <5.0 57 节点 <8 <5.0 <57

使用以下命令检查您的 Node 版本: node --version 根据您的 node-sass 安装 Nodejs 版本,如果您使用的是 NVM,请运行: nvm use DESIRED_VERSION clean old node_modules 删除文件夹或在终端上键入: rm -rf node_modules 运行: npm 安装

资源:

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


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

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

yarn add node-sass

这将升级版本并解决问题


不工作。得到“Node.js Sass 版本 7.0.0 与 ^4.0.0 不兼容”。需要做:yarn remove node-sassyarn add sass
只是 yarn add node-sass 对我很有效。谢谢
这个解决方案对我有用。我在 NodeJS 版本上构建 VueJS 应用程序。 16.x 在 Ubuntu 上。
D
Dharman

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

对我有用的是以下内容:

删除 node_module 文件夹、package-lock.json 和 yarn.lock 在我的 package.json 中,我升级了 rails/webpacker: 5.3.0。然后我重新运行纱线安装。然后我跑了 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 错误!节点gyp -v v3.8.0
谢谢,这是让我的项目在 M1 Mac 上运行的最后一步!
我所做的只是第 2 步,然后运行 yarn,这对我有用。
只需执行步骤 #2 和 #3 对我有用。谢谢!
d
dkm

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

yarn remove node-sass
yarn add sass

m
m02ph3u5

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


对于节点 16,这并没有完全实现 - 我的 package.json 指定了 webpacker v4.3.0,它包含 node-sass 作为依赖项。将 webpacker 更新为 5.3.0 是我的解决方案。
S
Somesh Gupta

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


它也对我有用。我想知道为什么 16 不起作用。
t
tronerta

如果它是一个 Rails 项目,升级 webpacker 为我完成了这项工作。

yarn add @rails/webpacker

感谢它为我工作的 Rails 6.x 项目。
这是为我工作的修复程序。不知道有一个 @rails/webpacker 包。
R
RottenCandy

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

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 在运行 install 命令之前在 shell 中运行它,或者把它放在 .bashrc 或类似的地方(如果你在 Linux 上)。
您可以只使用 npm config set python python2
就我而言,它正在寻找我没有的“python2”。安装了python2,它直接工作。
S
Sherllo

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

rm -rf node_modules
rm yarn.lock
yarn instal

就我而言,它是一个子依赖项,甚至没有列在 package.json 中。问题出在 yarn.lock / package-lock.json 中。从 github 墓地恢复项目时,这似乎是一个常见问题
A
Azeer Esmail

我在 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


V
Viktor Ivliiev

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

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

/node_modules/node-sass 有类似的问题:命令在构建我的应用程序时失败,这也发生在上周没有任何更新的情况下。查看了服务器上的 node-sass 文档和 node 版本,它使用的是 node v12.13.0,node-sass 的版本是 4.9.x。在 node-sass 发布文档中,它列出了对于 node v12,您需要拥有 node-sass v4.12 及更高版本。更新 node-sass 版本为我更正了构建,希望它对你也有帮助。节点发布文档:https://github.com/sass/node-sass/releases


我在尝试在 EC2 上复制站点时遇到了这个问题——这让我想仔细检查我是否安装了用于开发站点的相同版本的 Node。我没有。
K
Kamal Ahmed

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


S
Sam

使用 yarn 全局安装 node-sass

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


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

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


c
cajudeleite

如果您在尝试在 Heroku 上部署项目时遇到此错误,这些步骤对我有用:

2021 年 12 月 16 日,Heroku changed 将 Node 版本升级为 16.13.1(之前为 12.16.2)。由于我们有 node-sass v4.14.1 等需要 Node v14 的依赖项,因此我们需要指定 Heroku 应该使用的 Node 版本。

首先,我们需要使用多个构建包,它们会指定先安装 Node,然后再安装 Ruby(更多来自 Heroku)。

请让您按以下顺序安装它们

heroku buildpacks: 添加 heroku/nodejs $ heroku buildpacks: 添加 heroku/ruby

验证是否已安装 buildpack

$ heroku buildpacks heroku/nodejs heroku/ruby

如果 buildpacks 不在上面的顺序中,请删除它们并重新添加它们。例如,如果 ruby 先出现,您可以将其删除,然后再次添加,如下所示。

$ heroku buildpacks:remove heroku/ruby 再添加一次 $ heroku buildpacks:add heroku/ruby 现在你应该有正确的顺序了。

在 package.json 中指定正确的节点版本(在 stackOverflow 上引用)

{ ... "engines": { "node": "14.x" }, ... }

确保运行 $ yarn install 以根据新的 Node 版本更新依赖项。

发生这种情况是因为您的应用程序包含一个与 package.json 中的依赖项不匹配的 Yarn 锁定文件 yarn.lock。如果您使用 npm 而不是 Yarn 来安装或更新依赖项,则可能会发生这种情况。

如果适用,提交到 Git 和 Deploy!

我在这个article中找到了这个解决方案,它对我有用,希望我能帮助别人


M
MrJedi2U

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


V
Vik

阅读heroku日志后得到了非常奇怪的解决方案。

最初我已将构建包添加到此顺序中:heroku/ruby heroku/nodejs

https://i.stack.imgur.com/gOhql.png

但是在查看了完整的日志和错误之后,我改变了顺序:heroku/nodejs heroku/ruby

https://i.stack.imgur.com/qAslv.png

之后,预编译效果很好。


m
mondieki

对于 macOS 用户

如果您需要在 npm 中使用 node-gyp(例如通过 npm install),您将必须安装 node-gyp(使用 -g 全局安装或安装到可预测的位置)并告诉 npm 新的版本是。

就我而言,我的项目默认使用 node-gyp v3.8.0 来构建我的项目模块。

为了解决这个问题,我运行了以下命令:

npm config set node_gyp /usr/local/lib/node_modules/node-gyp
npm install

我希望这对任何经历同样情况的人来说都是有见地的。


T
Tyler2P

这里有同样的问题。我做了

nvm install 14  

因为我在 package.json 中的 node-sass 版本是 4.14.1,所以这将显示 - 现在使用 node v14.19.3 (npm v6.14.17) 在我做之后

yarn install

这是成功的


O
OzzieFZI

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


R
Rick Batera

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

****python =“本地路径/python27/python.exe”

解决


B
Bryan Mora

使用 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 一切正常。


J
Johannes

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


Y
Yash Maheshwari

对于 Vue Storefront 1,您可以尝试使用节点版本 10.16.0,它会正常工作。


T
Tennyson Zvaita

这在升级节点后的一天发生在我身上。我不得不恢复到较低的节点版本。我已经从 14.15.4 升级到 16.13.2


J
Jackson Lawrence

当我使用比我当前版本的 node-sass (4.9) 支持的新版本的 Node (16 via nvm) 时,我遇到了这个问题。回退到节点 10 可以缓解这个问题。 Ângelo Polotto 的答案有一个很好的兼容性图表可供参考。


M
Mohammadreza Abdoli

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅