1、npm run build 提示 invalid version
原因:
在 npm 校验中不允许出现
\d+\.\d+.\d+.\d+
,只能是\d+\.\d+\.\d+
npm 会采用以三个点分隔的数字开头;但不以四个点分隔的数字开头的任何内容。
解决:
修改版本号
2、npm 版本在 7+以上的时候,npm i 报错
原因:
在
NPM v7
中,默认安装peerDependencies
而我们平常安装的模块的 依赖,大多 会安装在devDependencies
或者dependencies
这种设计在NPM v7
之前,不会出现版本打架的情况,但是在V7
版本开始,会存在安装的时候,peerDependencies
和devDependencies
、dependencies
版本冲突的情况 这个时候,npm
不知道是安装peerDependencies
里面的版本包,还是安装devDependencies
、dependencies
内的版本包。这个时候就会报错
解决:
1、在不改变 npm 版本的情况下
使用
npm i --legacy-peer-deps
目的是绕过peerDependency
自动安装;它告诉NPM
忽略项目中引入的各个modules
之间的相同modules
但不同版本的问题并继续安装,保证各个引入的依赖之间对自身所使用的不同版本modules
共存。
—legacy-peer-deps 具体做了什么,可以点击链接访问
npm i --legacy-peer-deps
2、改变 npm 全局版本
npm i npm@6.14.15 -g
3、在虚拟环境 下载依赖 报错
报错如下:
No space left on device
原因:
虚拟环境磁盘空间满了
4、私库中新建了一个group之后,上传包报错
报错如下:
Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”
看到报错之后,我仔细查看了一下问题,上网找了一下,有说需要把 npm Bearer Token Reaim
放入 Active
中,并保存
但是加入之后,我重新登录之后,依然报同样的错误。然后继续查找相关问题,查到需要在本地的 .npmrc
文件中,需要新增 always-auth、_auth、email
这三个东西。
其中,_auth
的值为私库的 用户名:密码
进行 base64
编码而成
5、package.lock.json
在 Git
提交时有冲突,如何处理?
解决 package.json
中的冲突,然后使用 npm install --package-lock-only
让 npm
帮你自动解决冲突 官方推荐做法
6、本地开发开启 HTTPS
MAC 环境
# 1、安装
$ brew install mkcert
# 如果用 Firefox 需要额外安装 nss
$ brew install nss
# 2、安装本地证书机构
$ mkcert -install
# 3、生成证书
$ mkcert localhost 127.0.0.1
Windows 环境
# 1、修改命令执行策略
Set-ExecutionPolicy -ExecutionPolicy Bypass
# 2、远程安装chocolatey
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
# 3、验证是否安装成功
choco # 如果出现 Chocolatey version 就说明安装成功,如果报错可以多安装几次
# 4、安装 mkcert
choco install mkcert # 可能会失败,试多几次
# 5、安装本地证书机构
mkcert -install
# 6、使用 mkcert 生成证书
mkcert localhost 本地ip
使用
这里借助的是
webpack
这类打包工具
- 找到生成的证书
- 查找路径
C:\Users\用户名
或者C:\Users\Administrator
- 找到
localhost.pem
和localhost-key.pem
两个文件
- 查找路径
- 把生成的两个文件拷到项目根目录下,在启动命令前,加上以下命令
cross-env HTTPS=true SSL_CRT_FILE=localhost.pem SSL_KEY_FILE=localhost-key.pem
可以单独建个文件夹
cert
存放,然后配置.gitignore
,代码提交时不提交这代码,这时路径可能是SSL_CRT_FILE=./cert/localhost.pem
和SSL_KEY_FILE=./cert/localhost-key.pem
7、本地在运行 npm run dev 之后,提示 Error: listen EADDRINUSE: address already in use
原因:
npm 启动服务器的时候,启用的端口被占掉了
解决办法:
windows
netstat -ano |findstr 启用的端口号
2. MAC 的效果如下
![image.png](https://cdn.nlark.com/yuque/0/2022/png/221851/1667371278745-b7e41a14-efd7-4b73-b789-7d2ad7488c23.png#clientId=u65b62cbb-1757-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=O7362&margin=%5Bobject%20Object%5D&name=image.png&originHeight=73&originWidth=999&originalType=url&ratio=1&rotation=0&showTitle=false&size=23823&status=done&style=none&taskId=u1fe63efb-d84e-478d-bed3-739d5bf9316&title=)<br />然后使用以下命令就可以杀死对应的进程
```powershell
kill -9 对应的PID
- window 的效果如下
可以使用以下命令杀死对应的进程
## tasklist|findstr [进程号] 找到对应的进程名称
asklist|findstr 12920
## taskkill /f /t /im [进程名称] 根据进程名称杀死进程
taskkill /f /t /im /node.exe