nuxt / nuxt

The Intuitive Vue Framework.

Home Page:https://nuxt.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

在文件内容没有变化的情况下,每次打包出来的构建产物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的情况。

企业微信截图_520b0515-691e-4383-904d-6f95669464ab

企业微信截图_581c9e05-599b-4f42-a1db-565f3446d589

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?