npm - yarn 因 node-gyp 错误而失败

标签 npm yarnpkg node-gyp windows-build-tools

我正在尝试在我的项目上运行 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 node-gyp@3.8.0
gyp info using node@16.2.0 | 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 har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request@2.88.2: 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

最佳答案

Windows programs

原来我们安装了两个版本的 Visual Studio Build Tools:2017 和 2019。修复步骤是:

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

关于npm - yarn 因 node-gyp 错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67698148/

相关文章:

reactjs - 切换到 npm 进行 create-react-app

javascript - 如何获得 jupyterlab 的 javascript 依赖项的最终列表

node.js - 在 macOS Bigsur 上出现 `npm install` 时出现 Node-gyp 错误

node.js - 如何解决 npm MS 构建问题

javascript - 部署到Heroku node-gyp无法安装base64@2.1.0,node-gyp重建失败

javascript - 如何解决 webpack“Mod

node.js - 如何使用 Node require() 设置包名称的默认/后备范围

ember.js - Ember 构建失败

node.js - 运行 "npm"返回 "Error: Cannot find module ' 继承'”

vue.js - 我是否必须修复最新 nuxt.js 的审核问题?