关于laravel-mix生成mix-manifest.json错误问题
问题:以前项目一直迭代,没有去更新laravel-mix,还停留在1.x版本,今天开了个新项目(外包)
也就是小项目,所以不考虑前后端分离,laravel及laravel-mix使用最新版本,本人前端不精,最近在撸,webpack.mix.js配置如下:
const path = require('path');
const mix = require('laravel-mix');
mix.webpackConfig({
resolve: {
alias: {
"@admin": path.resolve(__dirname, 'resources/src/admin'),
}
},
externals: {
'vue': 'Vue',
'vue-router': 'VueRouter',
'element-ui': 'ELEMENT'
},
output: {
filename: "[name].js",
chunkFilename: "js/[name].js?id=[chunkhash]",
//之前项目的切割法
//chunkFilename: "js/[name]-[chunkhash].js"
}
}).babelConfig({
"presets": ["@vue/babel-preset-jsx"],
});
//mix.js('resources/src/admin/app.js', 'public/js/');
mix.js('resources/src/admin/app.js', 'app.js');
mix.extract(['axios', 'vuex']);
if (mix.inProduction()) {
mix.version();
}
- 1.发现mix-manifest.json生成的内容总是不对:
app.js以及vendor.js多了/,导致lravel mix(‘js/vendor.js’)报错{ "/js//app.js": "/js//app.js?id=2e3c7dc31d4a6120a61b", "/css/app.css": "/css/app.css?id=d41d8cd98f00b204e980", "/manifest.js": "/manifest.js?id=0c5ac57bd121981b3989", "/js//vendor.js": "/js//vendor.js?id=8a21fe2a17fc3703c2a0", "/js/basic.js": "/js/basic.js?id=fa9730bf8830d999c42e", "/js/form.js": "/js/form.js?id=5f18b2eeb89ccdaecdda", "/js/login.js": "/js/login.js?id=6d035b14aa48e4414fe5", "/js/table.js": "/js/table.js?id=d1455b17b6a4f681727f", }
- 2以前
chunkFilename: "js/[name]-[chunkhash].js"
这种方式的时候,mix.js()里的app.js以及vendor.js文件名不带hash的,也就是
现在app.js跟vendor.js文件名及mix-manifest.json中的key也都被hash处理了,这个如果还以[name]-[chunkhash].js方式生成的化有没有解决方案,或者说 blade模版中怎么应用最新编译的app.js及vendor.js{ "/js/app.js": "/js/app.js?id=2e3c7dc31d4a6120a61b", "/js/vendor.js": "/js//vendor.js?id=8a21fe2a17fc3703c2a0", "/js/basic.js": "/js/basic.js?id=fa9730bf8830d999c42e", "/js/form.js": "/js/form-5f18b2eeb89ccdaecdda.js?id=5f18b2eeb89ccdaecdda", "/js/table.js": "/js/table-6d035b14aa48e4414fe5.js?id=d1455b17b6a4f681727f", }
以上两个问题请问各位是否遇到过,分享下经验