【问题标题】:Regex in entry path while making an multiple entry points in webpack入口路径中的正则表达式,同时在 webpack 中创建多个入口点
【发布时间】:2017-01-17 16:14:54
【问题描述】:

在webpack中设置多入口路径时如何在路径中使用正则表达式?

目录

webpack.config.js

./javascripts/plugins/Alpha/plugin.js
./javascripts/plugins/Beta/plugin.js
./javascripts/plugins/Charlie/plugin.js
./javascripts/plugins/Delta/plugin.js
...

我想这样输出?

./build/resources/plugins/Alpha/Create/plugin.js
./build/resources/plugins/Beta/plugin.js
./build/resources/plugins/Charlie/plugin.js
./build/resources/plugins/Delta/plugin.js
...

我可以通过下面的配置来实现这个

{
entry: {
    "Alpha": "./resources/plugins/Alpha/plugin",
    "Beta": "./resources/plugins/Beta/plugin",
    "Charlie": "./resources/plugins/Charlie/plugin",
    "Delta": "./resources/plugins/Delta/plugin"
},
output: {
    filename: "[name]/plugin.js",
    path: "./build/resources/plugins"
},
module: {
    loaders: [
        {test: /\.js$/, loaders: ["babel-loader"]}
    ]
}

}

但是有一个问题,即使我的目录结构相同,如果我添加一个新插件,我将不得不在entry 键中创建一个新条目。这样我的webpack.config.js 将继续增长。 我可以在我的输入和输出目录中看到一个模式

输入:./javascripts/plugins/[pluginName]/plugin.js

输出:./build/resources/plugins/[pluginName]/plugin.js

有什么方法可以通过在路径中编写任何正则表达式来实现吗?

【问题讨论】:

标签: webpack


【解决方案1】:

您可以使用fs 扫描目录并动态创建条目对象。我就是做这个的。 (我假设您此时正在使用节点。)

const fs = require('fs');
const entryMap = {};

fs.readdirSync('./src/app/pages/')
    .filter(file => {
        return file.match(/.*\.js$/);
    })
    .forEach(f => {
        entryMap[f.replace(/\.js$/, '')] = ['./pages/' + f];
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多