我正在用Vue和Laravel构建一个web应用程序.我利用Laravel mix和Webpack来进行代码分割和版本管理.
然而, 每当我修改我的代码, 运行npm运行生产和上传到实时服务器上, 我经常收到TypeError: "e[r] is undefined"
我必须手动清除浏览器缓存才能正确加载页面,我已经启用了版本管理,因此缓存破坏应该是自动的。
下面是我的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();
我有一个类似的问题,我发现了一个不是很好的解决方案,但它的工作:在Webpack配置选项中设置 optimization.concatenateModules
和 optimization.minimize
到假。
经过一番忙碌。
我最好的办法是从服务器软件本身来控制缓存,比如:你可以通过nginx apachehttp配置来防止JS和CSS缓存。
例如:你可以从nginx apachehttp配置中防止JS和CSS缓存。