NodeJS版本问题
# nodejs
nodejs 版本兼容 12、14、16,推荐使用 14
# nvm
可以使用 nvm (opens new window) 进行多个 nodejs 版本之间切换
# 使用其它 nodejs 版本
nodejs 与 node-sass 是有版本对应关系的
使用不同的 nodejs 版本就要安装对应的 node-sass 版本
NodeJS | node-sass |
---|---|
Node 20 | 9.0+ |
Node 19 | 8.0+ |
Node 18 | 8.0+ |
Node 17 | 7.0+, <8.0 |
Node 16 | 6.0+ |
Node 15 | 5.0+, <7.0 |
Node 14 | 4.14+, <9.0 |
Node 13 | 4.13+, <5.0 |
Node 12 | 4.12+, <8.0 |
Node 11 | 4.10+, <5.0 |
Node 10 | 4.9+, <6.0 |
# 使用 nodejs 17
"node-sass": "7.0.3"
# 使用 nodejs 18、19
"node-sass": "8.0.0"
# 使用 nodejs 20
"node-sass": "9.0.0"
# nodejs 17+ 版本 package.json 增加配置
nodejs 17+ 可能会出现 error:0308010C:digital envelope routines::unsupported 错误。
出现这个错误是因为 nodejs 17+ 版本中发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。
需要在 package.json 的 scripts 项增加配置:set NODE_OPTIONS=--openssl-legacy-provider
"scripts": {
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"lint": "set NODE_OPTIONS=--openssl-legacy-provider && eslint --ext .js,.vue src",
"build:prod": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:stage": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging"
}
可能其它的依赖版本也需要调整,请根据报错提示修改
上次更新: 2024/04/12, 20:29:30