持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
这篇文章是关于我入职新公司,在新公司里跑其他项目组的项目时遇到的问题,总结如下:
PS:这家公司使用内网开发,npm源指向公司内部的库,软件安装也只能从共享中拉取。
一、npm i时报了deasync@0.1.21 install: node./build.js
解决方法
重新安装出问题的包,并且在后面加上参数--ignore-scripts: npm i deasync@0.1.21 --innore-scripts
二、npm报错cb() never called!
解决方法
- 删除
node_modules包; - 强制性清缓存
npm cache clean -force - 重新
npm i或者卸载当前node.js版本,重新安装更高版本,在npm i
三、关于Javascript heap out of memory报错问题
出现场景
以上npm i之后,npm run service时,跑了很久,且最后报内存溢出的问题,经百度有以下解决方法:
解决方法
- 通过安装插件,扩展内存:
npm install -g increase-memory-limit(全局安装increase-memory-limit)increase-memory-limit(在项目目录中执行)
- 也有找到一些方法像通过
node命令来设置内存限制,即修改package.json文件中内容,具体如下:"service": "npx --max-old space size=10240 vue cli-service server" - 亦或是直接到
node_modules下的.bin目录下去修改配置cmd文件,在命令行后面加上-max-old-space-size=10240
以上方法均试了一遍,无法解决问题:
首先因为公司用的是内网,
npm源指向公司内部的库,库中无此包,因此无法安装插件;
其次,经过一轮排查发现,该问题的出现是因为
npm安装时node版本对应不上,安装时报了一系列错误(如上),经过百度强制性解决之后,项目却仍然跑不动~
最后
终于找到问题了,于是我通过找到对应的node安装版本,重新安装跑项目~最后并无报错
同时在我发现问题、解决问题过程中也意识到,在项目中限制node版本,由此来防止npm安装不支持node.js版本的问题,限制方法如下:
- 在
package.json中通过engine来指定node版本,该方法下,若node版本对应不上,则报警告,不阻止用户行为
{
"engines": {
"node": ">=X.0.0"
}
}
- 在项目目录中增加
.npmrc配置文件,其中通过定义engine-strict=true,当node版本对应不上时,直接报错,且阻止用户npm i行为