npm ERR! code 1 npm ERR! path E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/build.js npm ERR! Building: D:\Program Files\nvm_use\nodejs\node.exe E:\a-zpp-日常工作内容\shanghai\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= npm ERR! gyp info it worked if it ends with ok npm ERR! gyp verb cli [ npm ERR! gyp verb cli 'D:\\Program Files\\nvm_use\\nodejs\\node.exe', npm ERR! gyp verb cli 'E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-gyp\\bin\\node-gyp.js', npm ERR! gyp verb cli 'rebuild', npm ERR! gyp verb cli '--verbose', npm ERR! gyp verb cli '--libsass_ext=', npm ERR! gyp verb cli '--libsass_cflags=', npm ERR! gyp verb cli '--libsass_ldflags=', npm ERR! gyp verb cli '--libsass_library=' npm ERR! gyp verb cli ] npm ERR! gyp info using [email protected] npm ERR! gyp info using [email protected] | win32 | x64 npm ERR! gyp verb command rebuild [] npm ERR! gyp verb command clean [] npm ERR! gyp verb clean removing "build" directory npm ERR! gyp verb command configure [] npm ERR! gyp verb check python checking for Python executable "python2" in the PATH npm ERR! gyp verb `which` failed Error: not found: python2 npm ERR! gyp verb `which` failed at getNotFoundError (E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:13:12) npm ERR! gyp verb `which` failed at F (E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:68:19) npm ERR! gyp verb `which` failed at E (E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:80:29) npm ERR! gyp verb `which` failed at E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:89:16 npm ERR! gyp verb `which` failed at E:\a-zpp-日常工作内容\shanghai\node_modules\isexe\index.js:42:5 npm ERR! gyp verb `which` failed at E:\a-zpp-日常工作内容\shanghai\node_modules\isexe\windows.js:36:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198:21) npm ERR! gyp verb `which` failed python2 Error: not found: python2 npm ERR! gyp verb `which` failed at getNotFoundError (E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:13:12) npm ERR! gyp verb `which` failed at F (E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:68:19) npm ERR! gyp verb `which` failed at E (E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:80:29) npm ERR! gyp verb `which` failed at E:\a-zpp-日常工作内容\shanghai\node_modules\which\which.js:89:16 npm ERR! gyp verb `which` failed at E:\a-zpp-日常工作内容\shanghai\node_modules\isexe\index.js:42:5 npm ERR! gyp verb `which` failed at E:\a-zpp-日常工作内容\shanghai\node_modules\isexe\windows.js:36:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198:21) { npm ERR! gyp verb `which` failed code: 'ENOENT' npm ERR! gyp verb `which` failed } npm ERR! gyp verb check python checking for Python executable "python" in the PATH npm ERR! gyp verb `which` succeeded python C:\Python27\python.EXE npm ERR! gyp verb check python version `C:\Python27\python.EXE -c "import sys; print "2.7.15 npm ERR! gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 16.14.0 npm ERR! gyp verb command install [ '16.14.0' ] npm ERR! gyp verb install input version string "16.14.0" npm ERR! gyp verb install installing version: 16.14.0 npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed npm ERR! gyp verb install version is already installed, need to check "installVersion" npm ERR! gyp verb got "installVersion" 9 npm ERR! gyp verb needs "installVersion" 9 npm ERR! gyp verb install version is good npm ERR! gyp verb get node dir target node version installed: 16.14.0 npm ERR! gyp verb build dir attempting to create "build" dir: E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass\build npm ERR! gyp verb build dir "build" dir needed to be created? E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass\build npm ERR! gyp verb Not using VS2017: Could not use PowerShell to find VS2017 npm ERR! gyp verb build/config.gypi creating config file npm ERR! gyp verb build/config.gypi writing out config file: E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass\build\config.gypi npm ERR! (node:1904) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only. npm ERR! (Use `node --trace-deprecation ...` to show where the warning was created) npm ERR! gyp verb config.gypi checking for gypi file: E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass\config.gypi npm ERR! gyp verb common.gypi checking for gypi file: E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass\common.gypi npm ERR! gyp verb gyp gyp format was not specified; forcing "msvs" npm ERR! gyp info spawn C:\Python27\python.EXE npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args 'E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-gyp\\gyp\\gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'msvs', npm ERR! gyp info spawn args '-G', npm ERR! gyp info spawn args 'msvs_version=auto', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args 'E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-sass\\build\\config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args 'E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-gyp\\addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args 'C:\\Users\\admin\\.node-gyp\\16.14.0\\include\\node\\common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=C:\\Users\\admin\\.node-gyp\\16.14.0', npm ERR! gyp info spawn args '-Dnode_gyp_dir=E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=C:\\Users\\admin\\.node-gyp\\16.14.0\\<(target_arch)\\node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-sass', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-sass\\build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! Traceback (most recent call last): npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\gyp_main.py", line 16, in <module> npm ERR! sys.exit(gyp.script_main()) npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 545, in script_main npm ERR! return main(sys.argv[1:]) npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 538, in main npm ERR! return gyp_main(args) npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 523, in gyp_main npm ERR! generator.GenerateOutput(flat_list, targets, data, params) npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 2004, in GenerateOutput npm ERR! generator_flags)) npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 943, in _GenerateProject npm ERR! return _GenerateMSVSProject(project, options, version, generator_flags) npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1047, in _GenerateMSVSProject npm ERR! p.WriteIfChanged() npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\MSVSProject.py", line 208, in WriteIfChanged npm ERR! encoding="Windows-1252") npm ERR! File "E:\a-zpp-�ճ���������\shanghai\node_modules\node-gyp\gyp\pylib\gyp\easy_xml.py", line 122, in WriteXmlIfChanged npm ERR! xml_string = xml_string.decode(default_encoding).encode(encoding) npm ERR! File "C:\Python27\lib\encodings\cp1252.py", line 12, in encode npm ERR! return codecs.charmap_encode(input,errors,encoding_table) npm ERR! UnicodeEncodeError: 'charmap' codec can't encode characters in position 7503-7508: character maps to <undefined> npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1 npm ERR! gyp ERR! stack at ChildProcess.onCpExit (E:\a-zpp-日常工作内容\shanghai\node_modules\node-gyp\lib\configure.js:345:16) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:520:28) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12) npm ERR! gyp ERR! System Windows_NT 10.0.19045 npm ERR! gyp ERR! command "D:\\Program Files\\nvm_use\\nodejs\\node.exe" "E:\\a-zpp-日常工作内容\\shanghai\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" npm ERR! gyp ERR! cwd E:\a-zpp-日常工作内容\shanghai\node_modules\node-sass npm ERR! gyp ERR! node -v v16.14.0 npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! gyp ERR! not ok npm ERR! Build failed with error code: 1 npm ERR! A complete log of this run can be found in: npm ERR! D:\Program Files\nvm_use\nvm\node_cache\_logs\2025-07-12T09_30_36_079Z-debug-0.log
时间: 2025-07-15 21:54:16 AIGC 浏览: 37
在 Windows 系统中使用 `npm install node-sass` 时,可能会遇到 `node-gyp` 编译错误,尤其是与 Python 2 编码相关的问题。这类错误通常与 Python 环境配置、Node.js 版本兼容性以及系统依赖项有关。
### 常见错误原因及解决方法
1. **Python 版本问题**
`node-gyp` 要求使用 Python 2.x(通常是 2.7.x),如果系统中安装的是 Python 3.x,会导致编译失败。
- 确保已安装 Python 2.7.x,并将安装路径添加到系统环境变量中。
- 设置 npm 使用指定的 Python 路径:
```bash
npm config set python "C:\Python27\python.exe"
```
2. **Node.js 版本与 node-sass 不兼容**
`node-sass` 对 Node.js 版本有严格要求,若 Node.js 是较新的版本(如 v16+),则 `node-sass` 可能无法正常编译。
- 使用与当前 Node.js 版本兼容的 `node-sass` 版本:
```bash
npm install node-sass@对应版本号
```
- 或者考虑使用 `sass`(Dart Sass)替代 `node-sass`,因为它对 Node.js 新版本兼容性更好:
```bash
npm install sass sass-loader --save-dev
```
3. **Windows 编译工具缺失**
`node-gyp` 需要 Windows Build Tools(如 Visual Studio 构建环境)来编译原生模块。
- 安装 Windows Build Tools:
```bash
npm install --global --production windows-build-tools
```
4. **使用自定义 Node.js 头文件路径**
如果 `node-gyp` 尝试从网络下载头文件失败,可以手动指定本地 Node.js 头文件路径[^1]:
```bash
npm install node-sass --nodedir=C:\Path\To\NodeVersion
```
5. **使用镜像加速下载**
在国内网络环境下,可以通过设置 npm 镜像来加速依赖下载:
```bash
npm config set registry https://registry.npmmirror.com
```
### 示例安装命令
```bash
npm install sass-loader node-sass --save-dev
```
### 建议方案
- 如果使用的是 Node.js v14 或更高版本,建议放弃 `node-sass`,改用兼容性更好的 `sass`(Dart 实现)[^2]。
- 如果仍需使用 `node-sass`,请确保使用与当前 Node.js 版本匹配的 `node-sass` 版本,并正确配置 Python 2 和 Windows 构建环境[^3]。
---
阅读全文