无网络部署VUE项目build时提示cannot find module ../package.json解决

2023-07-10 293点热度 0人点赞 0条评论

平时部署vue前端项目的时候,是npm install / npm run build打成一个静态包再给到服务器。

最近换成了Jenkins的方式部署,需要在Jenkins服务器上运行npm run build,然后自动上传到服务器。

不过有个问题,Jenkins服务器因为集团公司的要求,是不能联网的,无法安装依赖包(npm install)

解决思路

首先开发环境是Windows或者MacOS,开发环境的node_modules文件夹直接复制到Linux服务器上无法运行的,所以我先在自己的电脑跑一个Linux虚拟机,然后在虚拟机上搭好node环境,拉好代码后,安装npm install,然后把node_modules文件夹打包成node_modules.zip 后,传到Jenkins服务器。

问题点

把node_module.zip在Jenkins解压后,再次运行npm run build 后,提示如下错误:

Error: Cannot find module ../package.json
Require stack :
- /var/lib/jenkins/workspace/xxxxxx-project/node modules/.bin/vue-cli-service
... ...
code: 'MODULE_NOT_FOUND',

问题解决

通过搜索,找到问题点,是因为node_modules目录下还有一些隐藏文件例如map文件等,在虚拟机压缩的时候(使用的命令是zip -r node_modules.zip node_modules),这些文件是没有被压缩进去的。

解决的办法是zip压缩增加参数,把这些隐藏文件压缩进压缩包:

zip -r -y node_modules.zip node_modules

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论