npm ERR! code 1 npm ERR! path E:\20231213\vue-element-admin\node_modules\node-sass npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/build.js
执行npm install报错,根据下面报错信息可知,是由于nodejs和node-sass版本不一致造成的,也就是当前项目比较旧,而我安装的nodejs比较新。
PS E:\20231213\vue-element-admin> PS E:\20231213\vue-element-admin> PS E:\20231213\vue-element-admin> PS E:\20231213\vue-element-admin> npm install npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated chokidar@2.1.8: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated circular-json@0.3.3: CircularJSON is in maintenance only, flatted is its successor. npm WARN deprecated flatten@1.0.3: flatten is deprecated in favor of utility frameworks such as lodash. npm WARN deprecated acorn-dynamic-import@2.0.2: This is probably built in to whatever tool you're using. If you still need it... idk npm WARN deprecated consolidate@0.14.5: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated eslint-loader@1.9.0: This loader has been deprecated. Please use eslint-webpack-plugin npm WARN deprecated nomnom@1.8.1: Package no longer supported. Contact support@npmjs.com for more info. npm WARN deprecated browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. npm WARN deprecated html-webpack-plugin@2.30.1: out of support npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. npm WARN deprecated babel-eslint@8.0.3: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. npm WARN deprecated extract-text-webpack-plugin@3.0.2: Deprecated. Please use https://github.com/webpack-contrib/mini-css-extract-plugin npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. npm WARN deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0 npm WARN deprecated chokidar@1.7.0: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. npm WARN deprecated uuid@2.0.3: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated axios@0.17.1: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 npm WARN deprecated svgo@0.7.2: This SVGO version is no longer supported. Upgrade to v2.x.x. npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. npm WARN deprecated vue@2.5.10: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. npm WARN deprecated core-js@2.3.0: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. npm WARN cleanup Failed to remove some directories [ npm WARN cleanup [ npm WARN cleanup 'E:\\20231213\\vue-element-admin\\node_modules', npm WARN cleanup [Error: EPERM: operation not permitted, rmdir 'E:\20231213\vue-element-admin\node_modules\sockjs-client\node_modules\faye-websocket\lib'] { npm WARN cleanup errno: -4048, npm WARN cleanup code: 'EPERM', npm WARN cleanup syscall: 'rmdir', npm WARN cleanup path: 'E:\\20231213\\vue-element-admin\\node_modules\\sockjs-client\\node_modules\\faye-websocket\\lib' npm WARN cleanup } npm WARN cleanup ] npm WARN cleanup ] npm ERR! code 1 npm ERR! path E:\20231213\vue-element-admin\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:\nodejs\node.exe E:\20231213\vue-element-admin\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:\\nodejs\\node.exe', npm ERR! gyp verb cli 'E:\\20231213\\vue-element-admin\\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 node-gyp@3.8.0 npm ERR! gyp info using node@20.10.0 | 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:\20231213\vue-element-admin\node_modules\which\which.js:13:12) npm ERR! gyp verb `which` failed at F (E:\20231213\vue-element-admin\node_modules\which\which.js:68:19) npm ERR! gyp verb `which` failed at E (E:\20231213\vue-element-admin\node_modules\which\which.js:80:29) npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\which\which.js:89:16 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\index.js:42:5 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\windows.js:36:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:199:21) npm ERR! gyp verb `which` failed python2 Error: not found: python2 npm ERR! gyp verb `which` failed at getNotFoundError (E:\20231213\vue-element-admin\node_modules\which\which.js:13:12) npm ERR! gyp verb `which` failed at F (E:\20231213\vue-element-admin\node_modules\which\which.js:68:19) npm ERR! gyp verb `which` failed at E (E:\20231213\vue-element-admin\node_modules\which\which.js:80:29) npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\which\which.js:89:16 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\index.js:42:5 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\windows.js:36:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:199: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` failed Error: not found: python npm ERR! gyp verb `which` failed at getNotFoundError (E:\20231213\vue-element-admin\node_modules\which\which.js:13:12) npm ERR! gyp verb `which` failed at F (E:\20231213\vue-element-admin\node_modules\which\which.js:68:19) npm ERR! gyp verb `which` failed at E (E:\20231213\vue-element-admin\node_modules\which\which.js:80:29) npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\which\which.js:89:16 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\index.js:42:5 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\windows.js:36:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:199:21) npm ERR! gyp verb `which` failed python Error: not found: python npm ERR! gyp verb `which` failed at getNotFoundError (E:\20231213\vue-element-admin\node_modules\which\which.js:13:12) npm ERR! gyp verb `which` failed at F (E:\20231213\vue-element-admin\node_modules\which\which.js:68:19) npm ERR! gyp verb `which` failed at E (E:\20231213\vue-element-admin\node_modules\which\which.js:80:29) npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\which\which.js:89:16 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\index.js:42:5 npm ERR! gyp verb `which` failed at E:\20231213\vue-element-admin\node_modules\isexe\windows.js:36:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:199:21) { npm ERR! gyp verb `which` failed code: 'ENOENT' npm ERR! gyp verb `which` failed } npm ERR! gyp verb could not find "python". checking python launcher npm ERR! gyp verb could not find "python". guessing location npm ERR! gyp verb ensuring that file exists: C:\Python27\python.exe npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. npm ERR! gyp ERR! stack at PythonFinder.failNoPython (E:\20231213\vue-element-admin\node_modules\node-gyp\lib\configure.js:484:19) npm ERR! gyp ERR! stack at PythonFinder.<anonymous> (E:\20231213\vue-element-admin\node_modules\node-gyp\lib\configure.js:509:16) npm ERR! gyp ERR! stack at callback (E:\20231213\vue-element-admin\node_modules\graceful-fs\polyfills.js:306:20) npm ERR! gyp ERR! stack at FSReqCallback.oncomplete (node:fs:199:21) npm ERR! gyp ERR! System Windows_NT 10.0.22621 npm ERR! gyp ERR! command "D:\\nodejs\\node.exe" "E:\\20231213\\vue-element-admin\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" npm ERR! gyp ERR! cwd E:\20231213\vue-element-admin\node_modules\node-sass npm ERR! gyp ERR! node -v v20.10.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: D:\nodejs\node_cache\_logs\2024-01-22T01_46_53_225Z-debug-0.log
查看本地node版本是V20.10.0,而项目里node-sass版本是4.7.2, 到https://www.npmjs.com/package/node-sass上查看两者的版本对照信息,
执行如下命令:npm uninstall node-sass npm install sass --save-dev
npm install node_sass --save-dev(执行这个命令可能会报错,如下图,那就执行npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/dist --sass-binary-site=http://npm.taobao.org/mirrors/node-sass)
npm uninstall node-loader
npm install sass_loader --save-dev
最后执行:npm install --legacy-peer-deps成功
这是最后执行成功的截图:
在package.json中devDependencies里生成最新的版本号:
最后总结一下,对于这个报错,网上大部分的解决方案是把node版本降低,我感觉此方法实为大缪也,我们总不成有几个前端项目node-sass版本不同就卸载node?, 最好的解决方案是让项目适配你的电脑上的配置,而不是动不动就卸载呀,降级呀。