关于Vite,Vue,SSR的项目,已经开发完成。准备在服务器上(使用了docker)构建,然后一直构建失败。
// 版本信息
vue: "^3.4.21",
vite: "^5.1.6",
npm: ">=8.0.0",
node: ">=18.0.0"
// 打包命令
"build:test": "npm run build:client:test && npm run build:server:test",
"build:client:test": "vite build --ssrManifest --outDir dist/client --mode test",
"build:server:test": "vite build --ssr src/entry-server.js --outDir dist/server --mode test",
// dist目录结构
dist -client // 客户端
-server // 服务端
-index.js // express server 启动入口文件
-package.json
第一次尝试
项目打包后生成dist文件,然后将生产环境的package.json扔到dist里,下载依赖,使用pm2运行,
// 执行命令
>>cd dist
>>npm install
>>pm2 start index.js -i max
结果发现docker容器一直重新启动,经查看pm2官网文档,发现需要进行docker集成,后使用pm2-runtime
第二次尝试
全局安装pm2,如下仍然失败
// 执行命令
>> cd dist
>> npm install
>> pm2-runtime index.js -i max
后发现,可能是docker配置文件的命令执行顺序问题,
执行npm install 之后,没有等依赖下载完成,立刻执行了pm2-runtime index.js。
各位前后端或运维大佬们后面该咋搞?
有没有可能打包生成dist后不需要下载依赖(尝试过,会提示import express from "express" express not found),或者docker流水线如何配置,或者其他的可能解决方法。
让我这前端小白处理属实为难了!
1.不在dist里下载依赖
2.使用pm2配置文件ecosystem.config.cjs
3.docker CMD ["pm2-runtime", "ecosystem.config.cjs"]中pm2-runtime 改为pm2 安装地址