填坑之旅:win10 unapp vue-cli ERROR in Cannot find module 'node-sass'
ERROR in Cannot find module 'node-sass'
使用vue-cli生成的uniapp项目,npm run dev报错:
ERROR in Cannot find module 'node-sass'
其实在用uniapp的模板生成出来的项目,其实是直接可运行(H5和小程序都是正常的)
但我本身添加的代码中可能有sass的东西,于是使用npm执行安装
npm install node-sass
又报错:
gyp ERR! stack Error: Could not find any Visual Studio installation to use
gyp ERR! stack at VisualStudioFinder.fail (D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\find-visualstudio.js:122:47)
gyp ERR! stack at D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\find-visualstudio.js:75:16
gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\find-visualstudio.js:363:14)
gyp ERR! stack at D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\find-visualstudio.js:71:14
gyp ERR! stack at D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\find-visualstudio.js:384:16
gyp ERR! stack at D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\util.js:54:7
gyp ERR! stack at D:\nodejs\node_global\node_modules\node-sass\node_modules\node-gyp\lib\util.js:33:16
gyp ERR! stack at ChildProcess.exithandler (child_process.js:315:5)
gyp ERR! stack at ChildProcess.emit (events.js:314:20)
gyp ERR! stack at maybeClose (internal/child_process.js:1047:16)
gyp ERR! System Windows_NT 10.0.19045
很好奇,这个node-sass和visualstudio的关系?继续找解决方案,找到原因和解决办法:
主要是windows平台缺少编译环境,
- 先运行: npm install -g node-gyp
- 然后运行:运行 npm install --global --production windows-build-tools 可以自动安装跨平台的编译器:gym注:第二句执行下载好msi文件卡着不懂不安装,手动去对应的目录底下安装一下 在执行一边。
在上诉第2步报错:
Starting installation...
Please restart this script from an administrative PowerShell!
随后使用管理员开一个cmd,再来执行一次...
结果一直卡在 Successfully installed Python 2.7 (至少20分钟...)
然后继续搜索解决方案,发现白等了...
卡在Successfully installed Python 2.7
处理后,接到错误:
Could not install Visual Studio Build Tools.
Please find more details in the log files, which can be found at
C:\Users\Administrator\.windows-build-tools
但这个目录下没有vs的安装日志啊?!?!(随后怀疑是之前报错时,我去那个目录找到文件,手动点击过安装,可能导致它自动安装不了了)
于是继续找解决方案Error: Could not find any Visual Studio installation to use
于是再次继续手动安装(不敢卸载vs,windows产品和它系统有紧耦合关系,有之前卸载后再也无法安装的可怕经历)
安装完成后,继续安装node-sass:
# 先卸载之前安装的,不然会报错
npm uninstall node-sass
npm install node-sass
安装成功!
后续坑:
编译项目后,又收到报错:
Uncaught Error: Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js):
Error: Node Sass version 8.0.0 is incompatible with ^4.0.0.
at getSassImplementation (:8080/E:\git_coding\mall_recharge_uni\node_modules\@dcloudio\vue-cli-plugin-uni\packages\sass-loader\dist\getSassImplementation.js:46:13)
at Object.loader (:8080/E:\git_coding\mall_recharge_uni\node_modules\@dcloudio\vue-cli-plugin-uni\packages\sass-loader\dist\index.js:42:61)
at Object.yEaF (index.js:1685:7)
at __webpack_require__ (index.js:854:30)
at fn (index.js:151:20)
at Object.GSuk (index.js:1086:15)
at __webpack_require__ (index.js:854:30)
at fn (index.js:151:20)
at Module.XAuw (index.js:1167:940)
at __webpack_require__ (index.js:854:30)
at fn (index.js:151:20)
at eval (null:1:1)
说明node版本和node-sass版本不兼容...
查找自己的node版本对应的node-sass版本,查找地址:https://www.npmjs.com/package/node-sass
自己本机是node14.13.1,对应node-sass版本为:4.14+,于是执行:
npm uninstall node-sass
npm install node-sass@4.14
该问题解决!