这个是我最后构建出来的目录:
assets
里面存放了webpack-html-plugin
需要的模板文件css
文件夹就是放的css
js
文件夹存放的js
pages
文件夹存放的构建后输出的html
文件
我的webpack
文件配置为:
....
output: {
path: PATHS.dist,
publicPath: '',
filename: 'js/[name].js',
chunkFilename: 'js/[name].js'
},
....
plugins: [
new HtmlWebpackPlugin({
title: '注册',
template: './dist/assets/info.html',
inject: 'body',
filename: 'pages/index.html' //输出html文件的位置
})
]
以上的配置文件最后输出的静态文件的路径和上面给的那个图吻合。但是在我的业务逻辑当中使用了require.ensure([], function() {}, 'js/name')
去异步加载业务模块。
现在遇到的问题就是通过HtmlWebpackPlugin
因为filename
的配置带有'pages'这个路径,需要异步加载这些模块的时候也因为多了这个pages
而导致异步加载模块加载失败(404 Not Found)
.正确的路径是dist/js/xxxx.js
, dist/css/xxxxx.css
,现在却变成了dist/pages/js/xxxx.js
, dist/pages/css/xxxx.css
.请问如何在不改变最后打包出来的文件路径的情况下进行配置。
感觉是publicPath没设好