Webpack 教程:部署應用

2021-02-20 眾裡千尋

Webpack 可以與一些插件配合,將構建好的應用部署到各種環境中。

部署到 Github Pages

GitHub Pages 是一個非常流行的靜態網站託管平臺。gh-pages 這個工具可以幫助我們快速的將靜態網站部署到 GitHub Pages 上。

我們先安裝 gh-pages

npm add gh-pages --develop

package.json

{  "scripts": {    "deploy": "gh-pages -d dist"  }}

GitHub Pages 對於託管的靜態網站有一些規則約定,我們需要修改 output.publicPath,是的能正確的加載靜態資源。如果不設置 publicPath 的話,默認會從網站根目錄加載靜態資源。

publicPath 可以幫助我們控制應用從哪裡加載靜態資源。如果我們將靜態資源都託管在 CDN 上,則 publicPath 應該調整為 CDN 上資源的存放地址。

在我們的例子中,我們設置如下:


webpack.config.js

const productionConfig = merge([  {    output: {      // publicPath: "/",      // 將 publicPath 修改為項目名稱      publicPath: "/webpack-demo/",
}, }, ...]);

執行 npm run build 和 npm run deploy 之後,我們就將項目的 /dist 目錄部署到了 GitHub Pages 上,通過 https://<name>.github.io/<project> 就可以訪問到我們的靜態站點內容。

部署到其他環境

除了使用工具部署應用,我們還可以藉助於 Webpack 來部署。

webpack-deploy 是一個部署工具集合,本身可以脫離 Webpack 獨立使用。

webpack-s3-plugin 將資源部署到 Amazon。

ssh-webpack-plugin 通過 SSH 協議來部署資源。


動態修改 output.publicPath

有些時候,output.publicPath 我們無法預先確定,也就無法寫在配置文件裡。我們可以通過下面的方法在應用代碼中指定。

在應用的入口添加 __webpack_public_path__ = window.myDynamicPublicPath;,在合適的時候給這個變量賦值。

將 Webpack 配置中的 output.publicPath 刪除。

如果使用了 ESLint,那麼需要添加全局變量聲明,避免靜態檢查錯誤。globals.__webpack_public_path__: true。

當構建的時候, Webpack 會使用 __webpack_public_path__ 來加載模塊。

總結

儘管 Webpack 不是一個部署工具,但通過一些插件,Webpack 可以實現部署的功能。

我們可以動態的修改 output.publicPath 配置來在非編譯期確定靜態資源的地址。這個方法內部是基於 __webpack_public_path__ 這個全局變量來實現的。





相關焦點

  • Webpack 教程:性能優化
    webpack.debug.ProfilingPlugin 和 cpuprofile-webpack-plugin 可以將插件的運行時間輸出到文件中,然後將這個文件導入到 Chrome 的開發工具中,我們可以看到由此生成的火焰圖數據。一些優化措施默認情況下,Webpack 只會開啟一個實例,無法充分利用多核 CPU 的優勢。
  • Vue + webpack 學習(一)
    ,    "chalk": "^1.1.3",    "connect-history-api-fallback": "^1.1.0",    "css-loader": "^0.25.0",    "eventsource-polyfill": "^0.9.6",    "express": "^4.13.3",    "extract-text-webpack-plugin
  • 敲黑板:手把手教你 vue-cli 單頁到多頁應用
    前言我有一個cli創建的vue項目,但是我想做成多頁應用,怎麼辦,廢話不多說,直接開擼~約定:新增代碼部分在//add和//end
  • 教程: 從iPhone iTunes備份中讀取 簡訊 照片 應用程式
    --教程正文:這下就只能從備份下手了. iTunes 備份是使用 iTunes 備份手機的時候留下的iPhone 中完整的備份文件. 這裡面存儲著 iPhone 中所有的信息, 包括簡訊息, 照片 通訊錄 等等等等. 當然還有應用程式數據.
  • iPhone 6 新手教程:讓你發現 iPhone 的不可思議~
    鑼鼓喧天鞭炮齊鳴,既上個月愛應用助手火熱登場,咱們的玩機教程也隆重上架啦~ iPhone 6 馬上就要發售,不管是割腎還是抱壕腿
  • 亞馬遜與特斯拉再度合作,在全球部署Powerpack儲能系統
    Powerpack支持多種的應用,還能夠為商業消費者和能源供應商提供更好的電網控制、效率和可靠性。
  • 2016 年不容錯過的 30 個機器學習視頻、教程&課程
    視頻只做了展示截圖,觀看的話請複製文中的連結哦。時長:1小時30分地址:https://www.youtube.com/watch?v=G-kiewt438M&t=560s這是哈佛大學和耶魯大學的 CS50 機器學習課程中的一節。
  • 新編日語教程高清PDF共六冊,免費領取,你值得擁有
    Date | 2020/9/21Weather | partly cloudy文末有新編日語教程高清PDF資源(共六冊)的獲取方式標準日本語高清版PDF及配套筆記音頻資料分享(點擊藍色字體即可進入頁面)《新編日語教程1》是華東理工大學出版社2006年出版的圖書,作者是丸尾達。
  • 數據蛙:將蘋果手機照片導入電腦步驟圖文教程
    蘋果手機照片導入電腦步驟圖文教程。
  • 盤點 2015最受歡迎的群暉應用程式
    相信用過Synology群暉NAS的朋友們都知道,群暉NAS的作業系統——DSM提供許多移動APP,套件中心更是提供近百個應用程式,滿足你不同的需求
  • 高手必備技能:電腦中虛擬機安裝詳細教程!
    一、安裝準備 1、VMware workstation 12  (中文名「威睿工作站」)是一款功能強大的桌面虛擬計算機軟體,提供用戶可在單一的桌面上同時運行不同的作業系統,和進行開發、測試、部署新的應用程式的最佳解決方案。
  • Mac入門教程之: Command鍵5個隱藏功能
    Mac 電腦的 Command 鍵位於空格邊上,是 OS X 系統很多快捷鍵組合的一部分
  • 北京2名男子開黑客論壇提供教程被抓:5年獲利數萬
    為遏制網絡違法犯罪,特別是黑客犯罪的上升趨勢,在公安部「淨網2018」專項行動統一部署下,海澱警方在市局網安總隊的指導下,從黑客犯罪的傳播源頭入手
  • 蘋果官方教程:iOS 12.4 如何使用iPhone遷移功能
    如何使用iPhone遷移將新iPhone開機,並將它放在運行iOS 12.4或更高版本的當前iPhone旁邊*。包括檢查「郵件」、「通訊錄」和「日曆」的設置、為應用開啟通知功能、配對藍牙配件、將卡片添加到 Apple Pay、管理訂閱等等。熱點推薦:* 刪除 iPhone 自帶應用,增加可用容量* 如何在 iPhone XS 上顯示電量百分比?
  • iTools安卓應用市場搶紅包新版上線 紅包不再從指間溜走!
    與此同時我們iTools安卓移動端也迎來最新版本的更新,這次的新版更新為兔友們帶來了更多更實用的功能,其中最重要的強大新功能之一就是我們程式設計師哥哥日夜操勞並且用那雙單身20多年的麒麟臂重新進行代碼附魔加持的搶紅包,下面將為大家簡單介紹下使用教程。
  • DIY教程:雕刻橡皮章和製作橡皮章底座教程
    作為一個橡皮章的門外漢,想製作一個橡皮章,還是有點小困難的,雖然網上的橡皮教程有很多。尤其是當我想給橡皮章安裝一個木質的底座時,居然找不到一個好的方法,大多數的教程都建議,使用丙烯酸底座(acrylic blocks 也就是透明亞克力)和 cling mounts靜電吸附海綿,所以我還是決定嘗試自己的安裝方法。經過一些探索,把教程在這裡分享給大家!
  • 教程:娃衣
    搬運自微博   LotusDolly2014-8-21 19:29 來自 iPad客戶端#Lotus教程搬運LotusDolly2014-8-19 23:07 來自 iPad客戶端#Lotus教程搬運#海軍風~水手風~#娃衣紙樣分享#
  • 粉絲投稿:IOS9系統無需越獄完美隱藏桌面應用圖標教程
    很多朋友有隱藏桌面應用的圖標希望,有的是為了把不用的圖標隱藏後整齊美觀好看,有的是為了隱私不想讓別人看到,但是我們也知道蘋果原生是不帶這個功能的。所以很多人會選擇越獄去實現這個功能,但是有的人不想越獄,或者越獄後不想安裝插件來實現怎麼辦呢?今天就給大家提供一個在IOS9下無需越獄隱藏桌面應用圖標的方法:很簡單,幾步就行。
  • 信封手拿包教程:方便實用的信封手拿包製作教程(詳細圖紙尺寸)
    感謝作者小玉為我們分享了清晰的尺寸圖紙,並附上書籍的影印教程,製作不難,很實用好看,推薦給喜歡包袋的朋友。——了了推薦語以下為作者原文內容原文標題:玫瑰 信封包 手拿包 附圖紙原文來自:新浪博客教程作者:小玉的幸福園地這個小包做起來真的好快啊,一晚上就能完工
  • 現在開始:用你的Mac訓練和部署一個圖片分類模型
    (https://juejin.im/post/5e781a78e51d45271c3016db)從問題定義、算法選型、樣本準備、模型訓練、模型評估、模型服務部署、到模型應用都有介紹。/cnn_lb.pickle', "wb")f.write(pickle.dumps(lb))f.close()對於實際應用場景下,數據集很大,epoch 也會設置比較大,並在高性能的機器上訓練。