webpack的 entry

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.

 

(完)

 

转载于:https://www.cnblogs.com/tangkikodo/p/6541845.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值