Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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

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
Javascript 动态模块的Web包导入数组(在编译时已知)_Javascript_Webpack - Fatal编程技术网

Javascript 动态模块的Web包导入数组(在编译时已知)

Javascript 动态模块的Web包导入数组(在编译时已知),javascript,webpack,Javascript,Webpack,在我的项目中,我想导入特定的模块,这些模块的实际路径只有在编译时才知道 假设我有组件/A.js、组件/B.js和组件/C.js,在我的App.js中,我想包含它们的一个子集,这些子集只有在网页包的编译时才会知道(例如,来自JSON) 我尝试过的-1 //App.js compileData=等待getCompileDataSomehow() 导入(“./components/”+compileData.component+“.js”) 。然后(/*使用组件*/)进行操作; 这项工作很好,但we

在我的项目中,我想导入特定的模块,这些模块的实际路径只有在编译时才知道

假设我有组件/A.js组件/B.js组件/C.js,在我的App.js中,我想包含它们的一个子集,这些子集只有在网页包的编译时才会知道(例如,来自JSON)

我尝试过的-1

//App.js
compileData=等待getCompileDataSomehow()
导入(“./components/”+compileData.component+“.js”)
。然后(/*使用组件*/)进行操作;
这项工作很好,但webpack将为每个
组件/*.js
文件创建一个块。此外,还将有额外的网络往返。我觉得这有点过分了,因为我知道当webpack运行时我需要什么组件。因此,我试图提供组件数组,因为
require([…])
也被认为是动态的

我的结局是什么

//App.js
import(“./components/ALL.js”)//此文件实际上不存在
//webpack.config.js
常量fs=require('fs')
const componentsToInclude=[“A”,“B”]//这将从json中读取
fs.writeFileSync('./src/components/ALL.js',
`
导出默认值[
${componentsToInclude.map(comp=>`require(“./${comp}.js”)`)}
].map(c=>c.default);
`)
module.exports={//config//}
这管用!但正如您所看到的,这不是一个优雅的解决方案,而且bug很容易发生。那么,有人知道处理这种情况的正确方法吗