是否可以为webpack配置中的每个文件夹动态创建一个入口点?

gjv*_*lya 3 webpack webpack-2

这是我当前的文件夹结构:

-- src
   -- js
      -- page 1
         -- index.js
         -- actions
         -- components
         -- reducers
      -- page 2
         -- index.js
         -- actions
         -- components
         -- reducers
      -- page 3
         -- index.js
         -- actions
         -- components
         -- reducers
Run Code Online (Sandbox Code Playgroud)

这是我的webpack.config.js:

module.exports = {
    entry: {
        page1: './src/js/page1/index.js',
        page2: './src/js/page2/index.js',
        page3: './src/js/page3/index.js',
    },
    output: {
        path: './assets/javascripts',
        publicPath: '/assets/',
        filename: '[name].js'
    }
}
Run Code Online (Sandbox Code Playgroud)

所以每当我创建一个新页面时,我必须在我的入口对象中添加另一行.这可能变得非常大而且非常混乱.

那么有没有办法让webpack循环遍历/ src/js /文件夹中的所有文件夹,并自动使相应文件夹中的index.js成为入口点?

谢谢你的帮助!

fli*_*art 8

使用glob包:

const glob = require("glob");

const entry = glob.sync("src/js/**/*.js")
    .reduce((x, y) => Object.assign(x, {
        [y]: y,
    }), {});

module.exports = {
    entry,
    output: {
        path: './assets/javascripts',
        publicPath: '/assets/',
        filename: '[name].js'
    }
}
Run Code Online (Sandbox Code Playgroud)

这会迭代整个文件夹结构并抓取每个js文件并将其添加到条目哈希中