天天看點

webpack多入口多出口的實作

  • webpack是一個優秀的打包平台, 可以把sass, 圖檔, 字型等靜态資源全部打包到js中
  • 作者最近在改造一個傳統的靜态網站, 為了減少http請求, 其中一個政策就是,把單個靜态網頁對應的多個靜态資源(如字型, css, 圖檔, js), 打包輸出到一個js檔案中, 然後讓每個html與對應獨立的js相關聯就可以了
  • 我在網上找了webpack配置的相關資料, html與js的對應關系都是, "一對一", "多對一", 但很少有"多對多"的實作

但經過一番折騰, 最終還是被我配置出來了,這裡分享一下配置檔案相關的文法

//entry入口檔案支援json的形式
    entry: {
        "static/pc/js/index": "./webStatic/pc/js/index.js",
        "static/pc/js/article-details": "./webStatic/pc/js/article-details.js",
        "static/mobile/js/index": "./webStatic/mobile/js/index.js",
        "static/mobile/js/article-details": "./webStatic/mobile/js/article-details.js"
    },
    output: {
        path: path.resolve(__dirname, ''),
        //filename前面我們可以使用一個變量[name],這個就表示擷取entry裡面的key作為檔案名加在前面
        filename: '[name].js'
    }
           

配置說明

  • 根目錄下

    webStatic

    為源碼放置的位置, 根目錄下

    static

    為js輸出的的位置
  • 配置檔案共進行了四個映射:

    webStatic/pc/js/index.js

    輸出到

    static/pc/js/index.js

    ,

    ./webStatic/pc/js/article-details.js

    static/pc/js/article-details.js

    ./webStatic/mobile/js/index.js

    static/mobile/js/index.js

    ./webStatic/mobile/js/article-details.js

    static/mobile/js/article-details.js

  • 以後添加其它映射, 隻需在

    entry

    内,按照格式添加即可(對着抄就行)

小結:

對古老的網站進行維護, 短時間内用

react

vue

元件化重寫全部頁面不太現實,但用webpack做個打包, 還是可行性的, 配置好webpack多入口多出口,隻需對網站進行少量的改動, 就可以愉快的用scss, es6, 等文法寫網站了

繼續閱讀