亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

詳解webpack-dev-server的簡單使用

2024-05-06 16:43:30
字體:
來源:轉載
供稿:網友

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支持兩種模式來自動刷新頁面.

  1. iframe模式(頁面放在iframe中,當發生改變時重載)
  2. inline模式(將webpack-dev-sever的客戶端入口添加到包(bundle)中)

兩種模式都支持熱模塊替換(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時,需要做兩點:

  1. 在命令行中添加--inline命令
  2. 在webpack.config.js中添加devServer:{inline:true}

2 當以Node.js API啟動webpack-dev-server時,我們也需要做兩點:

  1. 由于webpack-dev-server的配置中無inline選項,我們需要添加webpack-dev-server/client?http://«path»:«port»/到webpack配置的entry入口點中.
  2. 將<script src="http://localhost:8080/webpack-dev-server.js"></script>添加到html文件中
 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);

在Node中運行上面的代碼即可。

注意:webpack配置中的devSever配置項只對在命令行模式有效。

(Hot Module Replacement)熱模塊替換

在命令行中運行inline模式,并啟用熱模塊替換

這里只需要多增加 --hot指令就OK了.如下所示.

webpack-dev-server --content-base build --inline --hot

注意:命令行模式下,webpack.config.js中一定要配置output.publicPath來指定編譯后的包(bundle)的訪問位置.

在Nodejs API中運行inline模式,并啟用熱模塊替換

這里需要做以下三點:

  1. 在webpack.config.js的entry選項中添加:webpack/hot/dev-server
  2. 在webpack.config.js的plugins選項中添加:new webpack.HotModuleReplacementPlugin()
  3. 在webpack-dev-server的配置中添加:hot:true

webpack-dev-server中的配置選項

var WebpackDevServer = require("webpack-dev-server");var webpack = require("webpack");var compiler = webpack({ // configuration});var server = new WebpackDevServer(compiler, { // webpack-dev-server options contentBase: "/path/to/directory", // Can also be an array, or: contentBase: "http://localhost/", hot: true, // Enable special support for Hot Module Replacement // Page is no longer updated, but a "webpackHotUpdate" message is send to the content // Use "webpack/hot/dev-server" as additional module in your entry point // Note: this does _not_ add the `HotModuleReplacementPlugin` like the CLI option does.  // Set this as true if you want to access dev server from arbitrary url. // This is handy if you are using a html5 router. historyApiFallback: false, // Set this if you want to enable gzip compression for assets compress: true, // Set this if you want webpack-dev-server to delegate a single path to an arbitrary server. // Use "**" to proxy all paths to the specified server. // This is useful if you want to get rid of 'http://localhost:8080/' in script[src], // and has many other use cases (see https://github.com/webpack/webpack-dev-server/pull/127 ). proxy: { "**": "http://localhost:9090" }, setup: function(app) { // Here you can access the Express app object and add your own custom middleware to it. // For example, to define custom handlers for some paths: // app.get('/some/path', function(req, res) { // res.json({ custom: 'response' }); // }); }, // pass [static options](http://expressjs.com/en/4x/api.html#express.static) to inner express server staticOptions: { }, // webpack-dev-middleware options quiet: false, noInfo: false, lazy: true, filename: "bundle.js", watchOptions: { aggregateTimeout: 300, poll: 1000 }, // It's a required option. publicPath: "/assets/", headers: { "X-Custom-Header": "yes" }, stats: { colors: true }});server.listen(8080, "localhost", function() {});// server.close();

參考:http://webpack.github.io/docs/webpack-dev-server.html

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品福利网| 亚洲第一区在线| 91精品91久久久久久| 久久久免费精品视频| 欧美激情精品久久久久久黑人| 欧美日韩不卡合集视频| 国产一区二区三区在线| 久久久久久久久91| 欧美日韩中文字幕日韩欧美| 亚洲激情在线观看视频免费| 欧美黄色性视频| 狠狠色狠狠色综合日日五| 亚洲自拍欧美另类| 亚洲精品自拍视频| 成人精品一区二区三区电影免费| 亚洲精品91美女久久久久久久| 精品亚洲一区二区三区在线播放| 国产一区二区美女视频| 国产在线a不卡| 色偷偷88888欧美精品久久久| 亚洲综合一区二区不卡| 国产精品露脸自拍| 欧美国产日本高清在线| 欧美一级电影在线| www.99久久热国产日韩欧美.com| 久久久久久999| 97精品伊人久久久大香线蕉| 亚洲一区二区免费| 精品色蜜蜜精品视频在线观看| 欧美理论片在线观看| 国产精品久久久久福利| 一区二区亚洲欧洲国产日韩| 国产精品免费一区二区三区都可以| 免费91麻豆精品国产自产在线观看| 久久人人爽人人爽人人片av高清| 国产v综合ⅴ日韩v欧美大片| 日韩亚洲第一页| 国产精品igao视频| 欧美成人免费全部| 久久91精品国产91久久久| 日韩欧美aⅴ综合网站发布| 久久久亚洲国产| 亚洲精品黄网在线观看| 亚洲精品电影在线| 精品国产91乱高清在线观看| 亚洲人成电影在线观看天堂色| 在线播放亚洲激情| 91嫩草在线视频| 中文字幕亚洲欧美| 在线看福利67194| 亚洲男子天堂网| 亚洲xxx自由成熟| 亚洲激情成人网| 精品久久久久久久久久久久| 97国产suv精品一区二区62| 欧美肥婆姓交大片| 欧美日韩国产麻豆| 亚洲福利视频久久| 精品视频在线导航| 欧美激情免费看| 国产精品狠色婷| 国产精品狠色婷| 91久久夜色精品国产网站| 欧美激情亚洲一区| 久久久久国产精品免费| 亚洲老板91色精品久久| 国产成人鲁鲁免费视频a| 色偷偷亚洲男人天堂| 91国产中文字幕| www高清在线视频日韩欧美| 亚洲欧洲在线免费| 国产免费一区二区三区香蕉精| 国产精品久久久久久久久久久久久久| 国产精品扒开腿做爽爽爽视频| 91精品在线国产| 国产成人极品视频| 亚洲天堂男人天堂| 久久99视频免费| 久久色在线播放| 欧美电影在线观看高清| 欧美亚洲第一区| 亚洲人成网站999久久久综合| 成人a视频在线观看| 欧美影院久久久| 一本色道久久综合狠狠躁篇怎么玩| 欧美洲成人男女午夜视频| 91干在线观看| 538国产精品一区二区免费视频| 国产精品久久久久久久久久ktv| 北条麻妃在线一区二区| 色妞欧美日韩在线| 黑人巨大精品欧美一区二区三区| 日本久久久a级免费| 国产精品一区二区久久久| 亚洲深夜福利在线| 久久久精品亚洲| 亚洲欧美国产精品久久久久久久| 精品中文字幕在线| 成人在线中文字幕| 欧美成人精品在线观看| 亚洲天堂开心观看| 日韩不卡在线观看| 日韩高清电影免费观看完整版| 在线视频一区二区| 国内精品久久久久久中文字幕| 欧美性一区二区三区| 97在线视频免费| 久久久999国产精品| 日韩美女免费视频| 国产精品永久免费在线| 欧美日韩国产一中文字不卡| 日韩精品一区二区三区第95| 亚洲护士老师的毛茸茸最新章节| 中文字幕亚洲一区在线观看| 国产精品九九久久久久久久| 国产极品精品在线观看| 日韩在线一区二区三区免费视频| 日韩精品福利在线| 欧美电影免费在线观看| 国产精品免费视频xxxx| 亚洲毛茸茸少妇高潮呻吟| 久久综合五月天| 欧美第一黄网免费网站| 日韩av中文字幕在线播放| 中文字幕日韩欧美在线| 日韩欧美精品免费在线| 91免费国产网站| 国内精品久久久久久久| 亚洲成人黄色网址| 国产男女猛烈无遮挡91| 欧美极品美女电影一区| 2019日本中文字幕| 亚洲精品电影在线| 亚洲在线一区二区| 国产一区红桃视频| 91精品久久久久久| 自拍偷拍亚洲区| 亚洲第一天堂无码专区| 精品久久久久久久久久| 久久久人成影片一区二区三区观看| 久久黄色av网站| 97高清免费视频| 免费成人高清视频| 色www亚洲国产张柏芝| 亚洲人成网站免费播放| 成人欧美一区二区三区黑人| 国产精品扒开腿做爽爽爽视频| 97在线看免费观看视频在线观看| 日韩精品在线观看一区二区| 国产精品久久久亚洲| 日韩精品中文字幕视频在线| 搡老女人一区二区三区视频tv| 久久久久久网址| 久久精品电影网| 日韩欧美在线视频观看| 久久久久久久色| 国产一区二区三区三区在线观看| 2019av中文字幕| 茄子视频成人在线| 亚洲成年人在线| 麻豆国产精品va在线观看不卡| 亚洲一区二区久久久久久| 伊人久久精品视频| 国产91久久婷婷一区二区|