mkdir webpack-demo
cd webpack-demo
@babel/core @babel/preset-env autoprefixer babel-loader css-loader file-loader html-webpack-plugin mini-css-extract-plugin postcss-loader style-loader webpack webpack-cli webpack-dev-server
devServer: { // 开发服务器的配置
port: 3000, // 端口号
progress: true, //
contentBase: ‘./dist‘, // 打开的文件路径
open: true // 是否打开
},
optimization: { // 优化项 minimizer: [ new optimizeCss() ] },
new UglifyJsPlugin({ // 压缩JS cache: true, // 是否缓存 parallel: true, // 是否压缩多个 sourceMap: true // es6的源码映射 }),
{ test: /.js$/, use: { loader: ‘babel-loader‘, options: { // babel-loader 把es6转换成es5 presets: [ ‘@babel/preset-env‘ ] } } },
插件: npm i eslint eslint-loader -D
{ test: /.less$/, use: [ MiniCssExtractPlugin.loader, ‘css-loader‘, ‘postcss-loader‘, ‘less-loader‘ ] }
new HtmlWebpackPlugin({ template: ‘./src/index.html‘, filename: ‘index.html‘, minify: { removeAttributeQuotes: true, // 删除index里的双引号 collapseWhitespace: true, // 折叠空行 变成一行 }, // hash: true // 哈希戳 }),
const path = require(‘path‘); const HtmlWebpackPlugin = require(‘html-webpack-plugin‘); const MiniCssExtractPlugin = require(‘mini-css-extract-plugin‘); // 分离css的插件 module.exports = { mode: ‘development‘, // 模式 默认两种 production-生产 development-开发 entry: { // 入口 index: ‘./src/index.js‘ }, devtool: ‘inline-source-map‘, // 报错源 module: { rules: [ { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, ‘css-loader‘, ‘postcss-loader‘ ] }, { test: /\.js$/, // normal 普通的 use: { loader: ‘babel-loader‘, options: { // babel-loader 把es6转换成es5 presets: [‘@babel/preset-env‘] } }, include: path.resolve(__dirname, ‘src‘), exclude: /node_modules/ }, { test: /\.(png|svg|jpg|gif)$/, use: { loader: ‘file-loader‘, options: { outputPath: ‘../imgs/‘ } } }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: [‘file-loader‘] } ] }, plugins: [ new HtmlWebpackPlugin({ // 创建新的html template: ‘./src/index.html‘, filename: ‘index.html‘ }), new MiniCssExtractPlugin({ filename: ‘./css/main.css‘ }) ], devServer: { // 打开浏览器 contentBase: ‘./dist‘, open: true, port: 3000, inline: true }, output: { // 出口 filename: ‘bundle.js‘, path: path.resolve(__dirname, ‘dist‘) } }
"build": "webpack",
"watch": "webpack --watch",
"start": "webpack-dev-server --open",
"server": "node server.js"
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘); plugins: [ new HtmlWebpackPlugin({ title: ‘Output Management‘ }) ],
npm install --save-dev clean-webpack-plugin
const { CleanWebpackPlugin } = require(‘clean-webpack-plugin‘);
new CleanWebpackPlugin(),
原文:https://www.cnblogs.com/lijieqiqi/p/qiqipak.html