Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 在网页包中创建多个入口点时,入口路径中的Regex_Webpack - Fatal编程技术网

Webpack 在网页包中创建多个入口点时,入口路径中的Regex

Webpack 在网页包中创建多个入口点时,入口路径中的Regex,webpack,Webpack,在Web包中设置多条目路径时,如何在路径中使用正则表达式 目录 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/Cr

在Web包中设置多条目路径时,如何在路径中使用正则表达式

目录

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
key中创建一个新条目。这样,我的
webpack.config.js
将继续增长。 我可以在输入和输出目录中看到一个模式

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

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


是否有任何方法可以通过在路径中写入任何正则表达式来实现同样的效果?

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


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


根据上述链接,这可能是重复的,可以使用
glob
解决。我在想webpack是否有自己提供的内容。根据上面的链接,这可能是重复的,可以使用
glob
解决。我在想webpack是否有自己提供的东西。
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];
    });