const path = require('path');
const htmlPlugin= require('html-webpack-plugin');
const PurifyCSSPlugin = require("purifycss-webpack");
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const glob = require('glob');
var website ={
publicPath:"http://localhost:1717/"
}
module.exports={
//入口文件的配置项
entry:{
entry:'./src/index.js',
editor: './src/js/yzWebeditor'
},
//出口文件的配置项
output:{
//打包的路径文职
path:path.resolve(__dirname,'dist'),
//打包的文件名称
filename:'[name]-bundle.js',
publicPath:website.publicPath
},
node: {
fs: "empty"
},
//模块:例如解读CSS,图片如何转换,压缩
module:{
rules: [
{
test: /\.css/,
exclude:/node_modules/,
use: ["style-loader","css-loader", "postcss-loader"],
},{
test: /\.less$/,
use: [
'style-loader',
{ loader: 'css-loader', options: { importLoaders: 1 } },
'postcss-loader',
'less-loader'
]
},{
test:/\.(png|jpg|gif)/ ,
use:[{
loader:'url-loader',
options:{
limit:5000,
outputPath:'images/',
}
}]
},{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000
}
},{
test: /\.(htm|html)$/i,
use:[ 'html-withimg-loader']
},{
test:/\.(jsx|js)$/,
use:{
loader:'babel-loader'
},
exclude:/node_modules/
}
]
},
//插件,用于生产模版和各项功能
plugins:[
new htmlPlugin({
minify:{
removeAttributeQuotes:true
},
hash:true,
template:'./src/index.html'
}),
new UglifyJsPlugin({
uglifyOptions: {
ie8: true
}
}),
new PurifyCSSPlugin({
// Give paths to parse for rules. These should be absolute!
paths: glob.sync(path.join(__dirname, 'src/*.html')),
})
],
//配置webpack开发服务功能
devServer:{
//设置基本目录结构
contentBase:path.resolve(__dirname,'dist'),
//服务器的IP地址,可以使用IP也可以使用localhost
host:'localhost',
//服务端压缩是否开启
compress:true,
//配置服务端口号
port:1717
}
}