node-sass 安装问题总结

node-sass 安装问题总结

前言

node-sass 每次安装环境都会有点问题, node-sass 需要依赖 python ,依赖 node 版本

每次在本地成功构建,发布到服务器上构建总会出现各种各样问题

有些报错看着和 node-sass 没有关系,但是其根本还是 node-sass 引起

解决方案

  1. 安装 docker ,本地使用 docker ,服务器使用同样的 docker 容器,这样可以保持一致,不用担心各种兼容性问题
  2. 使用 yarn 固定版本
  3. 使用 dart-sass 替代 node-sass

解决历程,问题重现

docker 成本比较高,这里暂且不表

服务器构建报错

第一次是服务器拉取不到对应的资源,证书过期了,我是用的淘宝镜像

npm ERR! request to https://registry.npm.taobao.org/js-cookie failed, reason: certificate has expired。

网上一搜淘宝 npm 镜像过期了,将 npm 淘宝镜像切换至淘宝的新镜像域名,步骤如下:

切换镜像源 npm config set registry https://registry.npmmirror.com

检测是否切换成功 npm config get registry

而且 cnpm , yarnnpm 镜像和 bpm 使用的 npm 镜像是可以不一样的 把上面的 npm 替换成 yarn 命令或者 cnpm 即可

我本地使用的 cnpm ,安装 cnpm 方式

cmd 复制代码
npm install -g cnpm --registry=https://registry.npmmirror.com

查看 cnpm 是否安装成功 cnpm -v

服务器切换了镜像继续报错

text 复制代码
error /home/jenkins/workspace/jay/node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments: 
Directory: /home/jenkins/workspace/jay/node_modules/node-sass
Output:
Building: /usr/local/node/bin/node /home/jenkins/workspace/jay/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=

我发现我本地用的 cnpm ,本地用的 yarn ,而且我 node 版本是 14.21,服务器是12.18

我让运维将服务器 node 版本升级到 14.21,并且切换到 cnpm 安装依赖,并且我看到官网 node-sassNode 版本关系

sql 复制代码
NodeJS Supported node-sass version Node Module
Node 20 9.0+ 115
Node 19 8.0+ 111
Node 18 8.0+ 108
Node 17 7.0+, <8.0 102
Node 16 6.0+ 93
Node 15 5.0+, <7.0 88
Node 14 4.14+, <9.0 83
Node 13 4.13+, <5.0 79
Node 12 4.12+, <8.0 72
Node 11 4.10+, <5.0 67
Node 10 4.9+, <6.0 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

我把版本固定在4.14,然后构建,依旧报错,服务器和本地还是天差地别

网上找到一个方法

ruby 复制代码
yarn add node-sass@yarn:dart-sass -D
JSON 复制代码
  {
    "node-sass": "npm:dart-sass"
  }

同时把 /deep/ 替换成 ::v-deep, 在我 vue2.7 版本,发现不起作用, 遂改为 >>> 就可以了

总结

参考文献

  1. www.npmjs.com/package/nod...
相关推荐
小信丶7 分钟前
解决 pnpm dev 报错:系统禁止运行脚本的问题
前端·vue.js·windows·npm
૮・ﻌ・14 分钟前
Vue3:组合式API、Vue3.3新特性、Pinia
前端·javascript·vue3
前端不太难15 分钟前
RN + TypeScript 项目越写越乱?如何规范架构?
前端·javascript·typescript
神算大模型APi--天枢64615 分钟前
全栈自主可控:国产算力平台重塑大模型后端开发与部署生态
大数据·前端·人工智能·架构·硬件架构
苏打水com16 分钟前
第十五篇:Day43-45 前端性能优化进阶——从“可用”到“极致”(对标职场“高并发场景优化”需求)
前端·css·vue·html·js
@大迁世界23 分钟前
08.CSS if() 函数
前端·css
Moment30 分钟前
小米不仅造车,还造模型?309B参数全开源,深度思考完胜DeepSeek 🐒🐒🐒
前端·人工智能·后端
苏打水com33 分钟前
第十六篇:Day46-48 前端安全进阶——从“漏洞防范”到“安全体系”(对标职场“攻防实战”需求)
前端·javascript·css·vue.js·html
5C2435 分钟前
从思想到实践:前端工程化体系与 Webpack 构建架构深度解析
前端·前端工程化
咕噜企业分发小米41 分钟前
如何平衡服务器内存使用率和系统稳定性?
java·服务器·前端