You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行npx mix --production为何在js/app目录生成大量数字命名JS文件?

问题解答:Laravel Mix构建后生成大量数字命名JS文件

这些文件是什么?

这些数字命名的JS文件是webpack(Laravel Mix基于webpack实现)的**自动代码分割(Code Splitting)**产物。由于你配置了多个JS入口文件(app.js、prism.js、validation.js等),webpack会自动检测这些入口之间共享的公共依赖(比如第三方库、重复的工具函数等),将其抽离为独立的chunk文件,用随机数字命名。这么做的目的是优化缓存和加载性能——用户访问页面时,公共代码只需加载一次,后续访问其他依赖相同代码的页面时可以直接复用缓存。

如何避免生成这类文件?

根据需求,有两种处理方案:

方案1:完全禁用自动代码分割

如果不需要webpack自动拆分公共依赖,可在webpack.mix.js中添加webpack配置,关闭splitChunks功能:

// Javascript
const javascriptInputsToCompile = [
    'app.js',
    'libs/prism.js',
    // ...其他入口文件
    'utils/validation.js',
];
javascriptInputsToCompile.forEach((file) => {
    mix.js(`resources/assets/js/${file}`, `js/${file}`);
});

// 添加以下配置禁用代码分割
mix.webpackConfig({
    optimization: {
        splitChunks: {
            enabled: false
        }
    }
});

方案2:自定义公共chunk的命名(保留代码分割但不用数字命名)

如果想保留代码分割的性能优化,只是不想用随机数字命名,可配置splitChunks指定固定名称:

// Javascript
const javascriptInputsToCompile = [
    'app.js',
    'libs/prism.js',
    // ...其他入口文件
    'utils/validation.js',
];
javascriptInputsToCompile.forEach((file) => {
    mix.js(`resources/assets/js/${file}`, `js/${file}`);
});

// 配置公共chunk的固定名称
mix.webpackConfig({
    optimization: {
        splitChunks: {
            chunks: 'all',
            name: 'js/app/common' // 指定公共chunk的输出路径和名称
        }
    }
});

配置后,所有公共依赖会被打包到js/app/common.js,替代原来的一堆数字命名文件。

内容的提问来源于stack exchange,提问作者Young L.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 23:05:11