使用npm的注意事项及错误收集
前言
记录npm
使用的一些注意事项,以及收集一些npm
错误的解决办法。
更新node和npm
更新node
- 安装
n
模块:
1 | sudo npm i -g n |
- 安装最新稳定版node:
1 | sudo n stable |
更新npm
1 | sudo npm i -g npm |
注意:更新完node和npm后,可能当前环境并没有刷新,需要手动更新命令行工具或重新进入;
手动更新:
1 | source ~.zshrc |
通过nvm更新node和npm
nvm
即Node version manager
,是专门用来管理node
版本切换的工具;
- 安装相应版本的
node
:
1 | nvm install v10.8.0 |
执行上述命令会自动安装v10.8.0
的node
及其对应的npm
;安装完后会自动切换到安装完后的node
版本,需要注意的是这只是临时切换。
- 永久切换
node
版本:
1 | nvm alias default v10.8.0 |
这样关闭终端后,打开的默认node
版本就是上述设置的版本。
- 临时切换
node
版本:
1 | nvm use vxx.x.x |
- 查看已安装的
node
版本:
1 | nvm list |
NPM错误收集
ERR 4048 unlink
1 | npm ERR! errno: -4048, |
导致问题的原因:项目中文件夹或某个文件被其他程序占用(很可能就是vscode的锅),导致文件没有权限被读写;
解决办法:使用杀毒软件对文件夹进行占用解锁;如腾讯管家:
相关参考链接:
- node.js - Fail to install npm package “npm ERR! errno -4048” - Stack Overflow
- node.js - npm install give Error: EPERM, unlink - Stack Overflow
EPERM: operation not permitted
1 | npm ERR! code EPERM |
该类错误通常是项目文件夹的权限不够(win10
中可能出现),在文件夹右击,然后选择『管理员取得所有权』即可。(很纳闷,明明是管理员账户为啥还有这情况出现?)
如果是解锁文件和赋予管理员权限还是提示-4048
的错误时,可以考虑在npm
命令后面加上--no-bin-links
参数;如:
1 | npm i xxx --no-bin-links |
参考文档:Error: EPERM: operation not permitted, unlink · Issue #2464 · phoenixframework/phoenix
Unexpected end of JSON input while parsing near
1 | Unexpected end of JSON input while parsing near xxx |
导致问题的原因:可能是之前安装的时候出现错误导致安装中断,因此npm
缓存中含有不正确的安装包;
解决办法:使用npm cache clean -f
清除缓存,然后再次安装即可;
相关参考链接:
node-sass安装失败
解决办法:直接单独设置淘宝源镜像进行安装;
1 | npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ |
参考链接:整理 node-sass 安装失败的原因及解决办法 - 个人文章 - SegmentFault 思否
提示包不存在:code ETARGET
如这样的错误:
1 | npm ERR! code ETARGET |
查找原因是package-lock.json
当中的这个包确实没有这个版本;
解决办法:直接把package-lock.json
这个包的信息去掉,然后重新安装即可;千万不要尝试直接在里面改变包的版本号,那样校验不会通过!