唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程

前言

折腾了整整一天,终于解决了在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包编译依赖环境
    唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第1张图片

如果这里没有勾选安装编译依赖环境,可以在nodejs安装目录下找到 install_tools.bat 脚本,双击执行

注意: 执行时如果产生红色字体报错信息,请查看详情后自行寻找解决方案处理,本人环境 无报错
唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第2张图片

  • 设置国内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

  • 点击修改
    唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第3张图片
  • 勾选c++桌面开发构建工具,点击修改
    唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第4张图片
    唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第5张图片
第六步

重启电脑

第七步

安装node-sass

npm install [email protected] --save-dev

无图无真相,请看结果:
唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第6张图片
唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第7张图片

辛酸历程

好了,现在该说说咱的辛酸史了,先来个统计数据看看:

  • 重置虚拟机 8 次
  • 各个节点报错分析处理 26 次
  • 百度搜索解决方案 n 次
  • 百度经验踩坑实验 n 次
  • 环境依赖测试 6 次

咱踩过哪些坑呢?各位请看:

  1. 安装windows平台编译环境
    npm install -g node-gyp
    npm install --global --production windows-build-tools 
    
    这个做法在新版本的nodejs中已经不适用了,参考如下链接:
    windows build tools npm
    唠一唠基于nodejs16.x环境安装node_sass包的辛酸历程_第8张图片
  2. 使用淘宝镜像源
    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
    
    实际测试结果: 本次实验所使用的node-sass6.0.1版本不需要使用如此配置即可成功安装
  3. 使用 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 脚本即可

还有几个错误,忘记错误信息是啥了,再回去重新装环境测试太浪费时间了,简单说一下:

  1. 命令行报python print语法错误,当时是因为我所安装 的node-sass是4.x的版本,与nodejs16.x的版本不匹配
  2. 执行install_tools.bat报.net framework 4.8 安装失败,这是因为win server 2012 r2缺失windows更新导致的
  3. 执行install_tools.bat报https://aka.ms/vs/16/release/channel访问失败,当时是通过修改dns为114.114.114.114解决的

最后,各位看官如有疑问欢迎留言讨论
又是斗(tou)智(ji)斗(qu)勇(qiao)的一天 [手动狗头]

你可能感兴趣的:(Web前端,前端,node.js)