網絡上不少文章真的是很糟糕雞肉鴨肉亂燉,包括早期webpack官方的文檔,一套完整的配置教程要看個半天,配置起來更是麻煩!本文使用webpack1,其實跟版本2沒多大改變,可是某些插件會致使報錯,使用當心。javascript
Git: github.com/asd0102433/…
喜歡的朋友star支持一下,不斷更新css
npm init -yes複製代碼
babel
babel-preset-env 文檔,一個幫你配置Babel的presethtml
npm install --save-dev babel-loader babel-core babel-preset-env webpack@1複製代碼
./webpack.config.js
./app/app.jsjava
module.exports = {
entry: { // 編譯入口配置
app: './app/app.js' // app/app.js 入口文件
},
output: { // 編譯後輸出配置
path: __dirname + '/dist', //__dirname指當前目錄,生成./dist文件
filename: '[name].build.js',
publicPath: '/' // 資源路徑,如:css的背景圖片等路徑
},
};複製代碼
而後在package.json中找到scripts添加node
"start": "webpack --config webpack.config.js"複製代碼
$ npm start複製代碼
好了,./dist/app.build.js 你能夠看到了,編譯成功。react
# 對es6的支持
$ npm install babel-preset-es2015 --save-dev
# 若是你想用es7的功能
$ npm install babel-preset-stage-0 --save-dev複製代碼
添加module到configwebpack
...
output:{..},
module: {
loaders: [
{
test: /\.js$/, //若是jsx 就jsx
exclude: /node_modules/, //禁止編譯node_modules文件
loader: 'babel-loader', //babel-loder
query: {
presets: ['es2015', 'stage-0', 'env'] //babel-preset-env
}
}
]
},
...複製代碼
好了,你的項目可使用import, se6, es7等特性了。git
建立html在你的 ./app/index.htmles6
$ npm install html-webpack-plugin --save-dev複製代碼
使用html-webpack-plugingithub
var HtmlWebpackPlugin = require('html-webpack-plugin');
plugins: [
new HtmlWebpackPlugin({
template: __dirname + 'app/index.html', //指向你的index.html
title: 'Fuck!', //頁面中經過<%= htmlWebpackPlugin.options.title %>使用 具體請看官方具體文檔
})
],複製代碼
好了上面你就會在dist/index.html 查看到了。
$ npm install webpack-dev-server@1.16.3 --save-dev複製代碼
注意若是使用webpack1的版本,dev-server不能是2的版本否則會報錯。
添加devServer 到config裏面,服務端口9000
devServer: {
contentBase: __dirname + 'dist',
compress: true,
port: 9000
}複製代碼
$ webpack-dev-server --hot --inline
[HMR] Waiting for update signal from WDS...
[WDS] Hot Module Replacement enabled.複製代碼
你能夠在在package.json 修改爲這樣
"build": "webpack --config webpack.config.js",
"start": "webpack-dev-server --hot --inline --config webpack.config.js NODE_ENV=development"複製代碼
你就能夠經過, 構建項目的命令了。
$ npm start
$ npm build複製代碼
命令添加 NODE_ENV=development
來給項目添加開發環境
到這就差很少能夠跑通了,更多的細節你們仍是去看git上面比較好的項目配置。通常找一些react的項目看看就能夠了。
你更新文件就會自動刷新頁面,可是是強刷。(難玩這東西)
若是你對dev-server有問題看看下面翻譯的這篇文章吧
www.jianshu.com/p/941bfaf13…
react hot解決了上面的問題,實現了hot
github.com/gaearon/rea…
若是你沒用react-hot 可使用 webpack-module-hot-accept
可是webpack2 仍是須要
若是你的css中字體路徑失效看這裏(我使用url-loader也遇到過)
stackoverflow.com/questions/3…
更多的xxx-loader,sass, img, font等你們本身去看文檔吧,相對簡單。
下面是我的以爲不錯的webapck優化
完全解決 Webpack 打包性能問題
webpack打包分析與性能優化
webpack 進階
webpack2 英文
webpack2 中文
webpack2 入門