devtool: 「eval-source-map」 webpack打包後的文件可讀性很是低,不利於調試,使用devtool能夠生成對應的源碼便於調試。使用eval打包源文件模塊,在同一個文件中生成乾淨的完整的source map。這個選項能夠在不影響構建速度的前提下生成完整的sourcemap,可是對打包後輸出的JS文件的執行具備性能和安全的隱患。在開發階段這是一個很是好的選項,在生產階段則必定不要啓用這個選項;css
webpack-dev-server 是一個本地開發服務器,居於node.js實現的,使用npm run dev 後就可使用默認的8080端口在瀏覽器上訪問了,相似於apache的功能。node
loader可讓webpack有能力調用外部的腳本或工具,實現對不一樣格式的文件的處理,好比說分析轉換scss爲css,或者把下一代的JS文件(ES6,ES7)轉換爲現代瀏覽器兼容的JS文件
css-loader 和 style-loader 就是用來處理樣式的。webpack
Babel實際上是一個編譯JavaScript的平臺,它能夠編譯代碼幫你達到如下目的:
讓你能使用最新的JavaScript代碼(ES6,ES7等待),而不用管新標準是否被當前使用的瀏覽器徹底支持;
讓你能使用基於JavaScript進行了拓展的語言,好比React的JSX;git
插件(Plugins)是用來拓展Webpack功能的,它們會在整個構建過程當中生效,執行相關的任務。es6
Loaders和Plugins經常被弄混,可是他們實際上是徹底不一樣的東西,能夠這麼來講,loaders是在打包構建過程當中用來處理源文件的(JSX,Scss,Less…),一次處理一個,插件並不直接操做單個文件,它直接對整個構建過程其做用。web
Webpack有不少內置插件,同時也有不少第三方插件,可讓咱們完成更加豐富的功能。apache
經常使用的插件:npm
HtmlWebpackPlugin
Hot Module Replacement(HMR) 熱加載:容許你在修改組件代碼後,自動刷新實時預覽修改後的效果
clean-webpack-plugin 去除build文件中的殘餘文件
OccurenceOrderPlugin :爲組件分配ID,經過這個插件webpack能夠分析和優先考慮使用最多的模塊,併爲它們分配最小的ID
UglifyJsPlugin: 壓縮JS代碼
ExtractTextPlugin:分離CSS和JS文件瀏覽器