在文件内容没有变化的情况下,每次打包出来的构建产物javascript文件的hash值都不一致
DecadeFarewell opened this issue · comments
Environment
Operating System: Linux
Node Version: v20.13.0
Nuxt Version: ^3.11.1
CLI Version: 3.11.1
Nitro Version: 2.9.5
Package Manager: npm@10.5.2
Builder: -
Build Modules: ["@pinia/nuxt", "@element-plus/nuxt", "@vite-pwa/nuxt"]
Reproduction
Describe the bug
在文件内容没有变化的情况下,每次执行nuxt build
,打包出来的js文件hash值都不一致,这导致我在使用docker进行多实例部署时,每个镜像中的构建产物名称不同,用户在请求js资源时,部分资源出现请求404的情况。
Additional context
No response
Logs
No response
现在我可以通过更改构建和发布流程来解决这个问题,我必须在jenkins流水线中完成项目的打包流程,然后在docker镜像启动时运行命令: CMD ["npm", "run", "app"]
, 但是这样我无法在docker镜像中注入相关的环境变量以供构建过程中使用,因为构建过程已经结束了
package.json:
...
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev --host",
"start": "node ./.output/server/index.mjs",
"app": "pm2 start npm --no-daemon --name portal -- run start",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
},
This seems to be a rollup problem, for which there is no good solution at the moment.
But maybe in the future we can solve it with nuxt-build-cache
#27258 looks like your issue might be solved by this?