path:所有输出文件的目标路径;
publicPath:输出解析文件的目录,url 相对于 HTML 页面
const { resolve }=require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
//入口文件名
entry: './src/index.js',
//输出文件配置
output:{
//文件名
filename: 'js/bundle.js',
//文件路径
path:resolve(__dirname,'dist'),
//资源访问路径
publicPath:'./'
},
//loader配置
module:{
rules: [
{
test: /\.css$/,
use: [ 'style-loader', 'css-loader' ]
},
{
test: /\.(png|jpg|gif)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10*1024,
name:'img/[name].[ext]'
}
}
]
},
{
test: /\.(html)$/,
use: {
loader: 'html-loader'
}
}
]
},
//plugings的配置
plugins:[
new HtmlWebpackPlugin({
filename:'./index.html',
template:'./src/ccc.html'
})
],
//模式
mode:'development', //开发模式
//mode:'production' 生产模式
}
就以以上配置文件来看。我们先看path,指所有文件打包后存入dist文件夹下,然后我们看plugins的html模板输出配置,文件名./index.html指在dist文件夹下的一级目录。这时在看publicPath:他是相对于刚才配置的模板url的路径。我们output的filename,这时打包好dist下的文件目录为 dist/js/bundle.js。
图片资源也是。
这是打包后的文件层级,及模板输出的html的js路径和img图片资源的路径