缘由:使用npm run dev / npm install是遇到一些错误,顺便记录下解决办法和一些常用命令
一、npm install 错误,处理流程及常用命令
1. 使用 --ignore-scripts 安装 (先把某个报错的包单独安装)
npm install xxx@x.x.x --ignore-scripts
1. 按提示进行重建或全部重建
- 如下图提示需要重建 node-sass包,则按提示进行重建,执行 npm rebuild node-sass 即可
![](https://img2020.cnblogs.com/blog/1865382/202107/1865382-20210727155410449-535382184.png)
npm rebuild node-sass
npm rebuild
2. 再次安装依赖
npm install
1. 将安装失败的项目中的node_modules文件夹删除
2. 清除缓存
npm cache clean --force
3. 再次安装依赖
npm install
- 仍旧失败后可以全局删除及安装node-pre-gyp重试
1. 全局删除node-pre-gyp
node-gyp
npm -g uninstall node-gyp
2. 全局安装node-pre-gyp
npm install node-pre-gyp -g
3. 再次安装依赖
npm install
4. 更新npm版本(非必须操作,再次npm install失败后可以尝试此操作)
npm install npm -g
5. 切换cnpm命令行工具代替默认的npm(非必须操作,再次npm install失败后可以尝试此操作,cnpm是国内淘宝的镜像源,但也有很多坑,慎用)
npm install -g cnpm --registry=http://registry.npm.taobao.org
6. 检查cnpm是否安装成功
cnpm -v
7. 使用cnpm再次安装依赖
cnpm install
二、服务器npm install 错误,报权限错误(切换为root仍旧报权限问题)
1. 解决办法,禁止切换到低权限用户进行npm install
npm i --unsafe-perm=true --allow-root
npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。
为了避免这种情况,要么按照 npm 的规矩来,专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root
Computer science and software engineering have always been my passion |