当我尝试在本地安装 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
python = "/usr/bin/python2.7"
的项目文件夹中创建一个 .npmrc
文件并安装。根据 link,尚不支持 python 3.xx。
我遇到了同样的问题,我通过以下步骤解决了:
如果您使用的是 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
我有同样的问题将 node-sass 版本升级为与 node 版本相同。用纱线运行:
yarn add node-sass
这将升级版本并解决问题
yarn remove node-sass
、yarn add sass
。
yarn add node-sass
对我很有效。谢谢
我正在运行 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
在尝试了上述所有其他方法之后,这就像一种魅力。
我相信这些是确切的步骤,虽然老实说,我尝试了很多东西,但它们没有奏效,我终于让它工作了,所以我可能错过了一步,但我尽了最大努力为任何未来沮丧的灵魂重新创造它。
yarn
,这对我有用。
尝试安装 sass 而不是 node-sass。它对我来说效果很好。
yarn remove node-sass
yarn add sass
只需升级 yarn.lock
文件中的 sass 版本即可。对于节点 14,node-sass
的适当版本是 4.14
。
因此请适应您的节点版本。
package.json
指定了 webpacker v4.3.0
,它包含 node-sass 作为依赖项。将 webpacker
更新为 5.3.0
是我的解决方案。
我在我的 package.json 文件中将节点版本从 16.0 更改为 14.x 并且它工作正常。
如果它是一个 Rails 项目,升级 webpacker 为我完成了这项工作。
yarn add @rails/webpacker
面临同样的问题。如果您查看错误堆栈,它会显示:
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
.bashrc
或类似的地方(如果你在 Linux 上)。
npm config set python python2
这里的解决方案对我不起作用。直到我删除了 node_modules 文件夹和 yarn.lock。
rm -rf node_modules
rm yarn.lock
yarn instal
我在 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
我的解决方案使用节点 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
我通过在 windows os 上安装 python 2.7 版本解决了这个问题。我之前安装了 Python 3。发生此错误是因为 python 版本 3。
使用 yarn
全局安装 node-sass
或将 node-sass
添加到您的项目中
npm install
没有引发错误。实际上我不是 yarn 专家,但您也可以尝试清理 yarn 的缓存和全局下载文件并重新安装 yarn
。顺便说一句,我正在使用 macOS Catalina。
除了建议的解决方案之外,我还发现有时 yarn.lock
的 node-sass
有一个 node-gyp
锁定版本。当我将它从 3.8.0 更改为 8.4.1 时,一切正常。
如果您在尝试在 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中找到了这个解决方案,它对我有用,希望我能帮助别人
另一种选择是更新您的 PATH 环境变量以指向 Python2 而不是 Python3(从 PATH 中删除 Python3 目录)
阅读heroku日志后得到了非常奇怪的解决方案。
最初我已将构建包添加到此顺序中:heroku/ruby heroku/nodejs
https://i.stack.imgur.com/gOhql.png
但是在查看了完整的日志和错误之后,我改变了顺序:heroku/nodejs heroku/ruby
https://i.stack.imgur.com/qAslv.png
之后,预编译效果很好。
对于 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
我希望这对任何经历同样情况的人来说都是有见地的。
这里有同样的问题。我做了
nvm install 14
因为我在 package.json
中的 node-sass
版本是 4.14.1
,所以这将显示 - 现在使用 node v14.19.3
(npm v6.14.17
) 在我做之后
yarn install
这是成功的
我在容器化 VueJs 应用程序时遇到了这个问题。我之前使用 node:15.12.0-alpine 标签作为基本映像,但是一旦我更改为使用 debian-stretch 的完整节点映像 (node:15.12.0),问题就得到了解决。
它失败了,因为这里使用了 python3。在包含 python = "/usr/bin/python2.7" 的项目文件夹中创建一个 .npmrc 文件并安装。根据链接,尚不支持python 3.xx。 – NaceurBouhamed 20 年 2 月 25 日 12:28
****python =“本地路径/python27/python.exe”
解决
使用 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 一切正常。
TBH 我的问题是我尝试“npm install angular-cli”而不是“npm install @angular/cli”,希望这有助于像我这样的其他傻瓜:)
对于 Vue Storefront 1,您可以尝试使用节点版本 10.16.0,它会正常工作。
这在升级节点后的一天发生在我身上。我不得不恢复到较低的节点版本。我已经从 14.15.4 升级到 16.13.2
当我使用比我当前版本的 node-sass (4.9) 支持的新版本的 Node (16 via nvm) 时,我遇到了这个问题。回退到节点 10 可以缓解这个问题。 Ângelo Polotto 的答案有一个很好的兼容性图表可供参考。
有时不显示正确的错误,更新节点版本并重试安装 node-sass 和 sass-loader
node --version
检查您当前的终端节点版本并使用nvm use 14
切换节点版本,以便使用正确的节点版本安装依赖项。