很早以前整理的一篇,如今已经使用v4了,做为本身的一个记录吧~css
你们能够去官网了解最新版本。html
v3.10.0前端
Webpack 是一个开源的前端打包工具。 将各类静态资源视为模块,并从它生成优化过的代码。node
rules: [
{
test: /\.css$/,
use: [
{ loader: 'style-loader' }
]
}
]
}
复制代码
import Styles from 'style-loader!css-loader?modules!./styles.css';
复制代码
webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader'
复制代码
yarn add webpack //yarn
npm install --save-dev webpack //npm安装最新版本
npm install --save-dev webpack@<version> //npm安装特定版本
npm install webpack@beta //安装beta版本
复制代码
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
}
]
}
};
复制代码
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
entry: {
app: './src/index.js',
print: './src/print.js'
},
plugins: [
new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
title: 'Output Management'
})
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
复制代码
doc.webpack-china.org/configurati…webpack
"scripts": {
"watch": "webpack --watch"
}
复制代码
devServer: {
contentBase: './dist'
},
复制代码
以上配置告知 webpack-dev-server,在 localhost:8080 下创建服务,将 dist 目录下的文件,做为可访问文件。web
"start": "webpack-dev-server --open",
复制代码
webpack-dev-middleware 是一个中间件容器(wrapper),它将经过 webpack 处理后的文件发布到一个服务器(server)。webpack-dev-server内部使用 webpack-dev-middleware,然而,它能够做为一个单独的包来提供,能够进行更多的自定义设置来实现更多需求。webpack-dev-middleware 配合 express servershell
server": "node server.js" 复制代码
devServer: {
contentBase: './dist',
hot: true
}
new webpack.HotModuleReplacementPlugin()
复制代码
Tree Shaking是移除 JavaScript 上下文中的未引用代码(dead-code) webpack build时会标识出那些“未引用代码(dead code)”,但不会删除它们。 实现删除,添加压缩工具(minifier) - UglifyJSPluginexpress
yarn add uglifyjs-webpack-plugin
或
npm install --save-dev uglifyjs-webpack-plugin
复制代码
开发环境中,咱们须要实时从新加载(live reloading)或热模块替换(hot module replacement)能力、source map 和 localhost server。npm
生产环境,目标是更小的 bundle,更轻量的 source mapjson
webpack-merge --保留一个“通用”配置
webpack.common.js
webpack.dev.js
webpack.prod.js
复制代码
"start": "webpack-dev-server --open --config webpack.dev.js",
"server": "node server.js",
"build": "webpack --config webpack.prod.js"
复制代码
有三种经常使用的代码分离方法:
filename: '[name].[chunkhash].js',
复制代码
include: path.resolve(__dirname, "src")
复制代码