webpack學習筆記二 :nline-source-map、實現自動構建、自動刷新瀏覽器

webpack學習筆記二

 

inline-source-map 有助於追蹤錯誤和警告在源代碼中的原始位置,如果不添加,則堆棧會簡單的指向bundle.js,顯然不利於我們開發過程中修改代碼。

在print.js中生成一個錯誤:

然後npm run build

 

實現自動構建

1、使用觀察者模式:npm run watch,進入觀察者模式,改變了代碼不用再npm run build一次,修改後會自動監聽改變,刷新瀏覽器(手動刷新)即可查看改變的效果。

2、使用webpack-dev-server,在觀察者模式下監聽到改變,不用手動刷新瀏覽器,會實現自動刷新瀏覽器。

npm install --save-dev webpack-dev-server

以上配置告知 webpack-dev-server,在 localhost:8080 下建立服務,將 dist 目錄下的文件,作爲可訪問文件。

 

然後再命令行輸入npm start 就進入了自動構建自動刷新的機制,就是我們所謂的熱調試。

 

webpack-dev-middleware:把webpack處理後的文件傳遞給一個服務器server,webpack-dev-server在內部使用了它,同時他也可以作爲一個單獨的包來使用,以便進行更多自定義設置來實現更多的需求。middleware(中間件)

npm install --save-dev express webpack-dev-middleware

添加一個server.js文件,和webpack.config.js同級,內容如下

配置好之後,執行npm run server,可以看到控制檯打印出了server.js中app.listen中console.log的內容

在瀏覽器中輸入http://localhost:3000即可看到剛纔的頁面

有的編輯器有“安全寫入”功能,會影響重新編譯,所以要做相應的配置。

 

runtime: 瀏覽器運行時,webpack用來連接模塊化的 應用程序的所有代碼

manifest: 在編輯器開始執行、解析和映射應用程序時,保留的所有的模塊的詳細要點都存放在Mainifest這個數據集合中。

通過使用manifest中的數據,runtime將能夠查詢模塊的標識符,檢索出背後對應的模塊。

 

模塊熱替換:允許在運行時更新各種模塊,而無需完全刷新。

1、更新webpack-dev-server的配置

 

2、修改index.js,使得print.js內部發生變更時告訴webpack接受更新的模塊。

3、修改print.js中的console.log()的內容,在瀏覽器中的控制檯刻意看到:

在這裏可以看到,點擊按鈕打印的還是更改前的console.log內容,這是因爲onclick時間仍然綁定在舊的printMe上面。修改辦法:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章