webpack的 entry

來源:互聯網
上載者:User

標籤:class   ack   logs   exp   string   array   str   webp   item   

webpack 在打包的時候有幾種選擇:

  entry: "./app/entry", // string | object | array  entry: ["./app/entry1", "./app/entry2"],  entry: {    a: "./app/entry-a",    b: ["./app/entry-b1", "./app/entry-b2"]  },

對於非單頁應用的項目, 經常會選擇第三種寫法, 設定多個入口, 這沒什麼問題, 不過有時頁面多的話, 維護這個entry 對象挺麻煩的.

那就換一種思路吧, 通常項目的頁面目錄都是有規則的, 比如/src/pagea/index.js,  /src/pageb/index.js, 如果可以保持這樣的命名閱讀的話

我們可以讓entry 自己找到所有的 [pagename]/index.js 入口, 實現打包.

 

var glob = require("glob");var entries = glob.sync("./src/page/*/index.ts").reduce(function (prev, item) {    key = item.replace(/\//g, ‘_‘).replace(/^\./, ‘‘).replace(/^\_/, ‘‘).replace(/\.js$/, ‘‘);    prev[key] = item;    return prev;}, {});module.exports = {    entry: entries,    output: {        path: path.resolve(__dirname, "bin"),        filename: "[name].js"    },    // ...}

  

這裡的正則替換的作用是把形如  src/page/projecta/index.js 變成  src_page_projecta_index (name變數的值) 的形式, 然後輸出到 bin/src_page_projecta_index.js.

 

(完)

 

webpack的 entry

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.