yarn 由于 node-gyp bug 失败

问题描述 投票:0回答:3

我正在尝试在我的项目上运行

yarn --ignore-engines
。我收到此错误消息:

error C:\Users\Jerome\mono\node_modules\node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments:
Directory: C:\Users\Jerome\mono\node_modules\node-sass
Output:
Building: C:\Program Files (x86)\nodejs\node.exe C:\Users\Jerome\mono\node_modules\node-sass\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   'C:\\Program Files (x86)\\nodejs\\node.exe',
gyp verb cli   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\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 [email protected]
gyp info using [email protected] | win32 | ia32
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 "C:\Users\Jerome\.windows-build-tools\python27\python.exe" in the PATH
gyp verb `which` succeeded C:\Users\Jerome\.windows-build-tools\python27\python.exe C:\Users\Jerome\.windows-build-tools\python27\python.exe
gyp verb check python version `C:\Users\Jerome\.windows-build-tools\python27\python.exe -c "import sys; print "2.7.15
gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j
gyp verb get node dir no --target version specified, falling back to host node version: 16.2.0
gyp verb command install [ '16.2.0' ]
gyp verb install input version string "16.2.0"
gyp verb install installing version: 16.2.0
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 16.2.0
gyp verb build dir attempting to create "build" dir: C:\Users\Jerome\mono\node_modules\node-sass\build
gyp verb build dir "build" dir needed to be created? C:\Users\Jerome\mono\node_modules\node-sass\build
gyp verb find vs2017 Found installation at: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
gyp verb find vs2017   - Found Microsoft.VisualStudio.Component.Windows10SDK.19041
gyp verb find vs2017   - Found Microsoft.VisualStudio.Component.VC.Tools.x86.x64
gyp verb find vs2017   - Found Microsoft.VisualStudio.VC.MSBuild.Base
gyp verb find vs2017   - Using this installation with Windows 10 SDK
gyp verb find vs2017 using installation: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: C:\Users\Jerome\mono\node_modules\node-sass\build\config.gypi
(node:12932) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
gyp verb config.gypi checking for gypi file: C:\Users\Jerome\mono\node_modules\node-sass\config.gypi
gyp verb common.gypi checking for gypi file: C:\Users\Jerome\mono\node_modules\node-sass\common.gypi
gyp verb gyp gyp format was not specified; forcing "msvs"
gyp info spawn C:\Users\Jerome\.windows-build-tools\python27\python.exe
gyp info spawn args [
gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'msvs',
gyp info spawn args   '-G',
gyp info spawn args   'msvs_version=2015',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\build\\config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Jerome\\.node-gyp\\16.2.0\\include\\node\\common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=C:\\Users\\Jerome\\.node-gyp\\16.2.0',
gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=C:\\Users\\Jerome\\.node-gyp\\16.2.0\\<(target_arch)\\node.lib',
gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\Jerome\\mono\\node_modules\\node-sass',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp verb command build []
gyp verb build type Release
gyp verb architecture ia32
gyp verb node dev dir C:\Users\Jerome\.node-gyp\16.2.0
gyp verb found first Solution file build/binding.sln
gyp verb using MSBuild: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
gyp info spawn args [
gyp info spawn args   'build/binding.sln',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=Win32'
gyp info spawn args ]
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe ENOENT
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
gyp ERR! stack     at onErrorNT (node:internal/child_process:480:16)
gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
gyp ERR! System Windows_NT 10.0.19042
gyp ERR! command "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Users\\Jerome\\mono\\node_modules\\node-sass\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\Users\Jerome\mono\node_modules\node-sass
gyp ERR! node -v v16.2.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! This is a bug in `node-gyp`.

从其他一些 SO 帖子中我相信这是因为我没有正确安装

windows-build-tools
。尽管当我尝试运行
npm i -g windows-build-tools
时,它空闲了一个多小时并且从未执行。

C:\Users\Jerome\mono>npm install --global windows-build-tools
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
[                  ] - reify:resolve: timing reifyNode:node_modules/windows-build-tools/node_modules/ajv Completed in 357ms
npm yarnpkg node-gyp windows-build-tools
3个回答
5
投票

结果我们安装了两个版本的 Visual Studio 构建工具:2017 和 2019。修复步骤是:

  1. Windows 键
  2. 添加或删除程序
  3. 向下滚动到 Visual Studio 构建工具 2019
  4. 卸载

4
投票

这是由于 nod-sass 不兼容造成的。
最好安装 sass 而不是 node-sass。
要解决此问题,请按顺序执行以下步骤:

  1. 从package.json中删除node-sass
  2. 运行npm install 或yarn
  3. npm 安装 sass

0
投票

我刚刚解决了这个问题。 从我的角度来看,只有当你与遗产一起工作时,你才可能面对它。就我而言,它是 nuxt2、vue2 和 node-sass。

解决方案:

  1. 删除node-sass sass-loader 纤维

    纱线去除 sass sass-loader 纤维

  2. 删除node_modules和yarn.lock

  3. 安装sass,使用sass-loader(仅v10)

    纱线添加-D sass sass-loader@10个纤维

© www.soinside.com 2019 - 2024. All rights reserved.