前言
折腾了整整一天,终于解决了在nodejs16.0环境下安装node-sass的问题,且听我慢慢道尽其中辛酸
因为本人环境可能与各位看官环境有一定差异,如无法解决您的问题,请自行查看日志分析处理,也可留言一起交流
环境说明
- 服务器: windows server 2012 r2 x64
- nodejs v16.14.2 x64
- npm v.8.5.0
- node-sass v6.0.1
解决方案
第一步
安装windows更新包,如下列表:
- KB2919442(KB2919355依赖包)
- KB2919355
- KB2932046(KB2919355附带包)
- KB2934018(KB2919355附带包)
- KB2937592(KB2919355附带包)
- KB2938439(KB2919355附带包)
- KB2959977(KB2919355附带包)
windows server 2012 r2 需要执行此步操作,windows10待测试
第二步
重启电脑
windows server 2012 r2 需要执行此步操作,windows10待测试
第三步
安装nodejs,这里请各位看官自行搜索相关教程,由于我这里是测试环境,就没有额外配置环境变量,主要需要注意以下两点:
- 勾选安装npm包编译依赖环境
如果这里没有勾选安装编译依赖环境,可以在nodejs安装目录下找到 install_tools.bat 脚本,双击执行
注意: 执行时如果产生红色字体报错信息,请查看详情后自行寻找解决方案处理,本人环境 无报错
- 设置国内npm源
npm config set registry https://registry.npm.taobao.org
第四步
设置npm中python和msvs_version的变量值,这里的msvs_version变量值根据visualstudio2019-workload-vctools依赖环境的版本进行设置
npm config set msvs_version 2019
第五步
安装visual studio 2019 c++编译所需依赖
首先找到 visualstudiobuildtools安装目录下的Installer C:\Program Files (x86)\Microsoft Visual Studio\Installer
双击打开 vs_installer.exe
- 点击修改
- 勾选c++桌面开发构建工具,点击修改
第六步
重启电脑
第七步
安装node-sass
npm install node-sass@6.0.1 --save-dev
无图无真相,请看结果:
辛酸历程
好了,现在该说说咱的辛酸史了,先来个统计数据看看:
- 重置虚拟机 8 次
- 各个节点报错分析处理 26 次
- 百度搜索解决方案 n 次
- 百度经验踩坑实验 n 次
- 环境依赖测试 6 次
咱踩过哪些坑呢?各位请看:
- 安装windows平台编译环境
这个做法在新版本的nodejs中已经不适用了,参考如下链接:npm install -g node-gyp npm install --global --production windows-build-tools
windows build tools npm
- 使用淘宝镜像源
实际测试结果: 本次实验所使用的node-sass6.0.1版本不需要使用如此配置即可成功安装npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ && npm install node-sass
- 使用 cnpm
使用cnpm确实可以成功安装node-sass,不过鉴于前端大佬有过最好使用npm的忠告,所以并未采取此方案处理
除了以上坑外,还有一些坑就不在此处列举了,有兴趣的看官可以参考如下链接:
node-gyp在windows下的使用说明
windows build tools废弃说明
nodejs 与 node-sass版本对应关系说明
错误汇总
知道看官们会循着错误信息找过来,列举下解决过程中遇到的错误信息及其原因:
- msvs_version not set from command line or npm config
# 需要执行如下命令设置msvs_version 变量值, 变量值是根据你所安装的vstools版本决定的,切勿照搬 npm config set msvs_version 2019
- VCINSTALLDIR not set, not running in VS Command Prompt
这个错误信息并不是需要你去设置VCINSTALLDIR环境变量,而是需要安装C++编译所需依赖,如上解决方案 - Can’t find Python executable “python”, you can set the PYTHON env variable
这个错误是因为没有安装python环境,对于高版本的nodejs,执行nodejs安装目录下的 install_tools.bat 脚本即可
还有几个错误,忘记错误信息是啥了,再回去重新装环境测试太浪费时间了,简单说一下:
- 命令行报python print语法错误,当时是因为我所安装 的node-sass是4.x的版本,与nodejs16.x的版本不匹配
- 执行install_tools.bat报.net framework 4.8 安装失败,这是因为win server 2012 r2缺失windows更新导致的
- 执行install_tools.bat报https://aka.ms/vs/16/release/channel访问失败,当时是通过修改dns为114.114.114.114解决的
最后,各位看官如有疑问欢迎留言讨论
又是斗(tou)智(ji)斗(qu)勇(qiao)的一天 [手动狗头]