是否可以在webpack配置中为每个文件夹动态创建一个入口点?
这是我当前的文件夹结构:是否可以在webpack配置中为每个文件夹动态创建一个入口点?,webpack,webpack-2,Webpack,Webpack 2,这是我当前的文件夹结构: -- src -- js -- page 1 -- index.js -- actions -- components -- reducers -- page 2 -- index.js -- actions -- components -- reducers -- page 3
-- src
-- js
-- page 1
-- index.js
-- actions
-- components
-- reducers
-- page 2
-- index.js
-- actions
-- components
-- reducers
-- page 3
-- index.js
-- actions
-- components
-- reducers
这是我的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'
}
}
所以每次我创建一个新页面时,我必须在我的条目对象中添加另一行。这可能会变得非常大和混乱
那么,有没有一种方法可以让webpack循环遍历/src/js/文件夹中的所有文件夹,并自动将相应文件夹中的index.js作为入口点 使用:
这将迭代整个文件夹结构,获取每个js文件,并将其添加到条目哈希中,以添加到我上面的答案中,因为我无法发表评论。使用
path.basename
方法将为您提供干净的非嵌套文件名
const glob=require(“glob”)
const path=require(“路径”)
const entry=glob
.sync(“src/js/***.js”)
.减少((会计科目,当前)=>{
返回{…acc[path.basename(curr,.js”)]:curr}
})
module.exports={
进入
输出:{
路径:“./assets/javascripts”,
publicPath:“/assets/”,
文件名:'[name].js'
}
}
是否可以使用.map硬编码,而不是使用nay包?
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'
}
}