npm run dev 以及 npm run build 报错解决思路:Module build failed ( from ./who/who/who )

最近有一个vue项目做完了,需要打包上测试环境进行测试,本来开开心心的,md,结果代码放到线上之后怎么编译都不过,各种报错,简直五花八门,解决一个问题就出现另一个不同的问题,搞得我头都大了。

在这里把解决问题过程的思路记录一下:

1、本地开发环境node的版本与线上环境node的版本要一致。
查看node版本:node -v

2、node_modules目录不可被重用。
项目的打包管理使用的Jenkins,然后从Git上拉代码,Jenkins是什么?

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

在线上环境,我们项目的测试大大对node_modules目录做了一个软连接,其他项目所使用的node_modules也都指向了同一个node_modules目录,也就是所有的vue项目使用同一个node_modules目录。

3、cnpm和npm尽量不要混合使用。
如果使用的npm安装的包,尽量不要再使用cnpm安装,保证依赖包的源一致。

查看当前的包管理是npm还是cnpm使用指令:npm config list
找到metrics-registry属性:

npm:"https://registry.npmjs.org/"
cnpm:"https://registry.npm.taobao.org/"

如图,我使用的是npm:
在这里插入图片描述
4、问题无法解决,那便删掉node_modules目录,重新npm install

重点:本地项目中的package-lock.json文件一定要与线上环境的package-lock.json内容一致。

package-lock.json是在install的时候自动生成的文件。
package-lock.json就是锁定安装时的包版本号,这样就能保证其他人在安装项目依赖的时候,大家使用的包的版本号相同,不会出现纰漏。
package.json文件只能锁定大版本,即版本号的第一位,不能锁定后面的小版本,你每次npm install时候拉取的该大版本下面最新的版本。
一般为了稳定性考虑我们不能随意升级依赖包,因为如果换包导致兼容性bug出现很难排查,所以package-lock.json就是来解决包锁定不升级问题的。

如果要升级package-lock.json里面的库包,需要使用指令:npm install XXX@x.x.x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的信息,报错"error:03000086:digital envelope routines::initialization error"是由于不支持的加密算法导致的。根据引用和引用的建议,可以尝试在执行"npm run build"之前设置环境变量NODE_OPTIONS为"--openssl-legacy-provider"来解决这个问题。具体操作步骤如下: 1. 打开命令行终端。 2. 输入以下命令来设置环境变量:set NODE_OPTIONS=--openssl-legacy-provider 3. 然后再执行"npm run build"命令。 这样设置环境变量后,应该能够解决报错"error:03000086:digital envelope routines::initialization error"的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [输入npm run dev报错“ensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization...](https://blog.csdn.net/qq_42294095/article/details/130376434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue-cli运行npm run serve报错error:03000086:digital envelope routines::initialization error解决方法](https://blog.csdn.net/qq_59741238/article/details/128374005)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值