node-sass安装失败,提示如下:
gyp verb check python checking for Python executable "python" in the PATH gyp verb `which` succeeded python D:Program FilesPython38python.EXE gyp ERR! configure error gyp ERR! stack Error: Command failed: D:Program FilesPython38python.EXE -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:310:20) gyp ERR! stack at maybeClose (internal/child_process.js:1021:16) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) gyp ERR! System Windows_NT 10.0.18362 gyp ERR! command "D:\Program Files\nodejs\node.exe" "E:\JDProject\renren-fast-vue\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd E:JDProject enren-fast-vue ode_modules ode-sass gyp ERR! node -v v12.16.3 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok Build failed with error code: 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modulesfsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass@4.9.0 postinstall: `node scripts/build.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-sass@4.9.0 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:UsersHPAppDataRoaming pm-cache\_logs2020-05-23T06_27_44_952Z-debug.log
原因:
print "%s.%s.%s" % sys.version_info[:3];
为python2.x版本的语法,如果本地安装的是python3.x,就会报此错误
解决方法:
1. 删除项目中的package-lock.json文件,清除缓存,更新版本号
#后续步骤运行npm install 命令时会重新生成package-lock.json文件
rm ./package-lock.json (如果windows系统,手动删除即可)
# linux 或windows cmd命令窗口下: npm cache clear --force npm install -g npm
2. 修改package-lock.json中依赖包的版本号
"node-sass": "4.14.1", "npm": "^6.14.5",
#sass-loader版本为可选项,如果项目很旧,sass-loader版本最好不要改动,否则容易引起项目启动异常 "sass-loader": "8.0.2",
npm 版本号: npm -v 命令获取
node-sass 版本号:https://www.npmjs.com/package/node-sa #用比较新的版本
sass-loader 版本号:https://www.npmjs.com/package/sass-loader #用比较新的版本
3 重新运行 npm install 命令,即可成功