webpack是一個打包web項目的工具 ,能夠實現css,js,less,cass,html的混淆加密,minify,結合webpack-dev-server熱部署,很是方便前端頁面和Nodejs的開發。css
webpackhtml
安裝方法前端
npm install webpack --save-dev node
npm install webpack-dev-server --save-devreact
執行webpack須要在項目目錄有一個配置文件 webpack.config.js 。 webpack
var webpack = require('webpack'); module.exports = { entry:{ index:'./src/index.js', vendor: [ 'react', 'react-dom', 'react-redux' ]}, output:{ path:'./bin', filename:'app.bundle.js', publicPath:'/bin' }, module:{ loaders:[{ test:/\.js$/, exclude:/node_modules/, loader:'babel', query: { presets: ['es2015', 'stage-0', 'react'] } }] }, plugins: [ new webpack.optimize.CommonsChunkPlugin(/* chunkName= */"vendor", /* filename= */"vendor.bundle.js") ] }
上面的 entry 表示入口文件,webpack會自動關聯出此js文件引用的其餘js文件。能夠設置爲一個數組,表示多個入口。web
本身寫的代碼打包存放的位置在output中指定了相對路徑./bin/app.bundle.js。npm
vendor 指出其中使用的第三方js,redux
便於下方plugins使用CommonsChunkPlugin把本身編寫的代碼和第三方代碼分開,此插件構造函數中指定了是哪一個vendor,以及處理後的保存位置。數組
modules 中的配置的loaders用於執行順序從右到左,相似管道依次處理test參數匹配到的js文件、css文件。
webpack好用的的參數
-p 或者 --optimize-minimize 實現去空格壓縮
-d 生成js.map文件,便於對應源碼位置
-- hot 啓用熱部署,不用刷新網頁
--watch 觀察文件變化自動從新webpack ,啓動webpack-dev-server時不使用這個參數也能夠自動觸發webpack