前言
最近在使用 Node.js 开发项目的过程中遇到了一些问题。我卸载了之前的 Node.js,重新安装了 nvm 并配置好后,运行项目时发现无法找到 npm 模块和 node。我试着删除了 node_modules 文件夹,结果无论怎样切换 Node.js 的版本,下载的包都无法运行起来,并且一直报错,而这些问题都和 node-sass 有关。
出现的问题大概长下面这样:
missing binding XXXXXXXXX
Error: Cannot find module 'XXXXX'
# 宗旨会让你重新 npm rebuild node-sass 可以试试有用否
正好这几天 cnpm 完全没反应,所以我也无法再使用 cnpm i node-sass 来安装了。
解决方法
有以下两种解决方法:
1.
使用以下命令来重建 node-sass 模块:
npm rebuild node-sass
2.
先重新安装 node_modules 并检查是否存在 node-sass 模块:
npm install
由于 cnpm 和淘宝镜像在这个时间段内都无法使用,您可以尝试使用其他源来下载 node-sass 模块,例如:
npm config set registry http://mirrors.cloud.tencent.com/npm/
npm install
您也可以尝试连接其他镜像源:
- 淘宝镜像源:
https://registry.npmmirror.com
https://registry.npm.taobao.org
- 腾讯云镜像源:
http://mirrors.cloud.tencent.com/npm/
- 华为云镜像源:
https://mirrors.huaweicloud.com/repository/npm/
- 官方默认全局镜像:
https://registry.npmjs.org
接下来需要从 GitHub 上下载
对应版本的 binding.node 文件,并将其放到 node_modules\node-sass\vendor\win32-x64-xx 目录下
我项目的node-sass在package.json中是^4.12.0往上的所以在这里找,我之前node在12和14中切换,所以决定node14然后用这个版本的node-sass
直接翻到资源的最下方,我下载了 win32-x64-83_binding.node
将下载的 win32-x64-83_binding.node 文件,重命名为 binding.node 并将其放入到 node-sass\vendor\win32-x64-83 目录下。
然后npm run起来!