很早以前整理的一篇,如今已經使用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")
複製代碼