首页 > 技术文章 > 使用npm run dev / npm install是遇到一些错误,顺便记录下解决办法和一些常用命令,持续更新!

wangchengxu 2020-12-18 14:44 原文

缘由:使用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 即可
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

推荐阅读