webpack-dev-server
webpack-dev-server是一個小型的Node.js Express服務器,它使用webpack-dev-middleware來服務于webpack的包,除此自外,它還有一個通過Sock.js來連接到服務器的微型運行時.
我們來看一下下面的配置文件(webpack.config.js)
var path = require("path");module.exports = { entry:{ app:["./app/main.js"] }, output:{ path:path.resolve(__dirname,"build"), publicPath:"/assets/", filename:"bundle.js"}}這里你將你的源文件放在app文件夾下,并通過webpack將其打包到build文件夾下的bundle.js中.
注意:webpack-dev-server是一個獨立的NPM包,你可以通過npm install webpack-dev-server來安裝它.
基本目錄
webpack-dev-server默認會以當前目錄為基本目錄,除非你制定它.
webpack-dev-server --content-base build/
上述命令是在命令行中執行的,它將build目錄作為根目錄.有一點需要注意的是:webpack-dev-server生成的包并沒有放在你的真實目錄中,而是放在了內存中.
我們在基本目錄下新建一個index.html文件,然后在瀏覽器中輸入http://localhost:8080訪問.
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script src="assets/bundle.js"></script></body></html>
自動刷新
webpack-dev-server支持兩種模式來自動刷新頁面.
兩種模式都支持熱模塊替換(Hot Module Replacement).熱模塊替換的好處是只替換更新的部分,而不是頁面重載.
iframe模式
使用這種模式不需要額外的配置,只需要以下面這種URL格式訪問即可
http://«host»:«port»/webpack-dev-server/«path»
例如:http://localhost:8080/webpack-dev-server/index.html.
inline模式
inline模式下我們訪問的URL不用發生變化,啟用這種模式分兩種情況:
1 當以命令行啟動webpack-dev-server時,需要做兩點:
2 當以Node.js API啟動webpack-dev-server時,我們也需要做兩點:
var config = require("./webpack.config.js"); var webpack = require('webpack'); var WebpackDevServer = require('webpack-dev-server');config.entry.app.unshift("webpack-dev-server/client?http://localhost:8080/");var compiler = webpack(config);var server = new WebpackDevServer(compiler, { contentBase:'build/', publicPath: "/assets/"});server.listen(8080);
新聞熱點
疑難解答
圖片精選