Webpack Laravel-Mix Chunk 错误 TypeError: "e[r]未定义"

问题描述 投票:0回答:2

我正在用Vue和Laravel构建一个web应用程序.我利用Laravel mix和Webpack来进行代码分割和版本管理.

然而, 每当我修改我的代码, 运行npm运行生产和上传到实时服务器上, 我经常收到TypeError: "e[r] is undefined"

Screenshot

我必须手动清除浏览器缓存才能正确加载页面,我已经启用了版本管理,因此缓存破坏应该是自动的。

下面是我的webpack.mix.js文件。

const mix = require('laravel-mix');
const webpack = require('webpack');
mix.webpackConfig({
    plugins: [
        new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
    ]
})
const CompressionPlugin = require('compression-webpack-plugin');

module.exports = {
    plugins: [new CompressionPlugin()],
    optimization: {
        minimize: true,
        namedModules: true,
        namedChunks: true,
        removeAvailableModules: true,
        flagIncludedChunks: true,
        occurrenceOrder: false,
        usedExports: true,
        concatenateModules: true,
        sideEffects: false, // <----- in prod defaults to true if left blank
    }
};

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.js('resources/js/main/main.js', 'public/v1.4.0/js')
   .sass('resources/sass/app.scss', 'public/css')
    .extract(['vue'])
    .version();
laravel webpack laravel-mix
2个回答
0
投票

我有一个类似的问题,我发现了一个不是很好的解决方案,但它的工作:在Webpack配置选项中设置 optimization.concatenateModulesoptimization.minimize 到假。


0
投票

经过一番忙碌。

我最好的办法是从服务器软件本身来控制缓存,比如:你可以通过nginx apachehttp配置来防止JS和CSS缓存。

例如:你可以从nginx apachehttp配置中防止JS和CSS缓存。

© www.soinside.com 2019 - 2024. All rights reserved.