const {resolve} = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry : ['./src/js/index.js','./src/index.html'],
output:{
filename: 'js/built.js',
path: resolve(__dirname,'build')
},
module:{
rules:[
//less
{
test:/\.less$/,
use:['style-loader','css-loader','less-loader']
},
//css
{
test:/\.css$/,
use:['style-loader','css-loader']
},
//图片
{
test: /\.(jpg|jpeg|png|gif)$/,
loader: 'url-loader',
options:{
limit:8*1024,
name:'[hash:10].[ext]',
esModule:false,
outputPath: 'imgs'
},
type:'javascript/auto'
},
//html
{
test:/\.html$/,
loader: 'html-loader'
},
//其他
{
exclude:/\.(html|js|css|less|jpg|jpeg|png|gif)$/,
loader:'file-loader',
options:{
name:'[hash:10].[ext]',
esModule:false,
outputPath: 'media'
},
type:'javascript/auto'
}
]
},
plugins:[
new HtmlWebpackPlugin({
template:'./src/index.html'
})
],
mode: 'development',
devServer:{
contentBase:resolve(__dirname,'build'),
compress:true,
port:3000,
open:true,
hot:true
},
target: "web", //可以解决browserslist 导致 webpack-dev-server 的自动刷新失效
/**
* source-map: 外部
* 提示错误代码,提示源代码位置。
* inline-source-map: 内联
* 提示错误代码,提示源代码位置。
* hidden-source-map: 外部
* 提示到错误代码,错误原因,不能追踪到源代码错误,只是构建后。
* eval-source-map: 内联
* 提示错误代码,提示源代码位置。
* nosources-source-map: 外部
* 提示错误代码,没有任何源代码信息。
* cheap-source-map: 外部
* 提示一整行错误带,提示源代码位置。
* cheap-module-source-map: 外部
* 提示错误代码,提示源代码位置。module会将loader的source map加入。
*
* 开发环境:速度快,调试更友好--eval-source-map
* eval inline cheap
* 生产环境:隐藏源代码
* 内联:会让代码体积变大,不考虑。
* mosources 、 source-map 、hidden
*/
devtool:'hidden-source-map'
}