在以前的文章中咱們已經成功的配置了webpack對腳本、樣式、HTML、圖片、字體的處理,php
本文將詳細介紹webpack神器,webpack-dev-server的配置。css
經過本文的閱讀你能夠學到html
npm install webpack-dev-server –save-dev
若是使用的webpack是低於2.2.0的版本則會安裝失敗,jquery
能夠經過安裝低版本的webpack-dev-server來解決這個問題。能夠進入到webpack-dev-server的github中找。webpack
npm install webpack-dev-server@1.16.5 --save-dev
安裝速度較慢耐心等待。git
如今在命令行執行webpack-dev-server的話會報錯,由於若是使用命令行來執行的話須要全局安裝一下。github
npm install webpack-dev-server@1.16.5 -g
如今執行webpack-dev-server 可能會執行成功,可是也有可能沒有執行成功如圖,最可能的緣由是8080端口被佔用了。不過沒有關係先把這個問題放在一邊咱們繼續進行配置,咱們後面對於端口進行更改就能夠了。web
若是執行成功的話咱們經過瀏覽器進入http://localhost:8080/webpack-dev-server能夠看到一個界面,顯示的是咱們項目的文件夾和文件。這個頁面的額佈局是webpack-dev-server默認的iframe方式,這個方式很差的地方是:npm
所以咱們須要將其切換成另外一種方式。接下來咱們更改配置文件。在webpack.config.js中的common加上client,即「webpack-dev-server/client?http://localhost:8123」因爲是本文提一次使用webpack.config.js,所以我把全部代碼都放上來,如何一步步配製成目前這樣的請參考我以前的文章。瀏覽器
var webpack = require(‘webpack’); var ExtractTextPlugin = require("extract-text-webpack-plugin"); var HtmlWebpackPlugin = require(‘html - webpack - plugin’); //獲取html-webpack-plugin參數的方法 var getHtmlConfig = function(name) { return { template: ‘. / src / view / ’ + name + ‘.html’, filename: ‘view / ’ + name + ‘.html’, inject: true, hash: true, chunks: [‘common’, name] } } //webpack config var config = { entry: {‘common’: [‘. / src / page / common / index.js’, ’webpack - dev - server / client ? http: //localhost:8123/’], ‘index’: [‘. / src / page / index / index.js’], ‘login’: [‘. / src / page / login / index.js’], }, output: { path: ‘. / dist’, filename: ‘js / [name].js’ }, externals: {‘jquery’: ‘window.jQuery’ }, module: { loaders: [{ test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }, { test: /\.(gif|png|jpg|woff|svg|eot|ttf)\??.*$/, loader: ‘url - loader ? limit = 100 & name = resource / [name]. [ext]’ }] }, plugins: [ //獨立通用模塊到js/base.js new webpack.optimize.CommonsChunkPlugin({ name: ‘common’, filename: ‘js / base.js’ }), //把css單獨打包到文件 new ExtractTextPlugin("css/[name].css"), //html模版的處理 new HtmlWebpackPlugin(getHtmlConfig(‘index’)), new HtmlWebpackPlugin(getHtmlConfig(‘login’)), ] }; module.exports = config;
從代碼中咱們能夠看到咱們指定了端口號的8123,
這個時候咱們要使用8123的端口的話須要在命令行中指定端口來執行webpack-dev-server
webpack-dev-server –inline –port 8123
若是是以前沒有執行成功的話,在配置了以後執行這條指定端口號的命令行應該就能夠執行成功了。
用瀏覽器打開這個路徑。能夠看到已經少了頁頭方便咱們調試樣式。若是這個時候仍是不可以打開頁面可能這個端口也被佔用了(筆者就是808八、8080和8123都被佔用了),這裏提供一個關閉佔用端口的方法。沒有問題能夠直接跳過這一部分。