当我尝试在我的本地安装vue商店前,但当我尝试“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

当前回答

如果你试图在Heroku上部署你的项目时得到这个错误,这些步骤对我来说是有效的:

2021年12月16日,Heroku将Node版本更改为16.13.1(之前为12.16.2)。因为我们有依赖项,比如Node -sass v4.14.1,它需要Node v14,所以我们需要指定Heroku应该使用的Node版本。

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

请让您按照以下顺序安装

$ Heroku buildpacks:add heroku/nodejs $ Heroku buildpacks:add heroku/ruby

验证构建包已经安装

$heroku构建包 Heroku/NodeJS 希罗库/红宝石

如果构建包不在上述顺序中,则删除每个构建包并添加 他们了。例如,如果ruby排在前面,您可以删除 ,然后再次添加它,如下所示。

$ heroku构建包:删除heroku/ruby 重新添加 $ heroku构建包:添加heroku/ruby 现在你应该有正确的顺序了。

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

{ ... "引擎":{ “节点”:“14.倍” }, ... }

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

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

如果适用,提交到Git并部署!

我在这篇文章中找到了这个解决方案,它对我很有效,希望我能帮助到别人

其他回答

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

针对Rails用户

对我来说,这很容易解决。如果您正在使用nvm,只需确保您安装了正确的节点版本并正在使用。

步骤:

检查节点版本号 如果节点版本与您的rails项目使用的版本不同,则更新(例如使用节点16,但项目使用节点14),执行nvm use 14 走纱安装

这应该有用。

我遇到了同样的问题,将node-sass版本升级为与node版本相同。用纱线刚跑完:

yarn add node-sass

这将升级版本并修复问题

我现在在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升级

chase439的道具:https://github.com/sass/node-sass/issues/2447

用yarn全局安装node-sass

或 将node-sass添加到项目中