Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Reactjs 使用Webpack进行响应-打包一个模块,以便在另一个站点中动态加载_Reactjs_Split_Webpack_Redux - Fatal编程技术网

Reactjs 使用Webpack进行响应-打包一个模块,以便在另一个站点中动态加载

Reactjs 使用Webpack进行响应-打包一个模块,以便在另一个站点中动态加载,reactjs,split,webpack,redux,Reactjs,Split,Webpack,Redux,我使用Webpack作为使用标准React/Redux/etc的应用程序的构建/绑定程序 我们需要构建可以动态加载到主应用程序中的自定义组件。这将要求组件在主开发之外创建,因此不会参与主应用程序构建。理想的解决方案是在他们自己的项目中构建组件,捆绑(因为它们将有导入/需求等),并生成一个bundle.js文件,该文件只是该组件(可以是多个合并在一起的组件)。然后,我们希望能够获取该文件并将其动态加载到主应用程序中 我理解我们在主项目中使用的webpack在一定程度上是如何进行代码拆分的。我还能够

我使用Webpack作为使用标准React/Redux/etc的应用程序的构建/绑定程序

我们需要构建可以动态加载到主应用程序中的自定义组件。这将要求组件在主开发之外创建,因此不会参与主应用程序构建。理想的解决方案是在他们自己的项目中构建组件,捆绑(因为它们将有导入/需求等),并生成一个bundle.js文件,该文件只是该组件(可以是多个合并在一起的组件)。然后,我们希望能够获取该文件并将其动态加载到主应用程序中

我理解我们在主项目中使用的webpack在一定程度上是如何进行代码拆分的。我还能够成功地从外部导入我在外部构建的简单组件。问题是,这些外部组件可能会变得相当庞大,因此使用构建/绑定器将其全部放在一个包中是理想的。我不知道如何从主项目外部构建组件,如何使用webpack将所有的好东西合并到一个包中,并注入新的捆绑组件(通常包装在webpackjsonp和所有其他运行时的东西中)

还有谁能做这样疯狂的事吗

谢谢

编辑

我已经能够使用webpack成功地在自己的项目中构建思洛存储器组件,并使用所述的Output.Library选项将其动态加载到与webpack捆绑在一起的不同运行应用程序中

下面是用于测试名为TestMe的定制react组件的示例配置,该组件位于test文件夹的index.js文件中

module.exports = {
entry: {
    developer: "./test"
},
output: {
    path: path.join(__dirname, "dist", "static", "developer"),
    filename: "MyLibrary.[name].js",
    library: ["MyLibrary", "[name]"],
    libraryTarget: "var"
},
externals: {
    'react': 'React'
    , 'react-dom': 'ReactDOM'
    , 'react-dom/server': 'ReactDOMServer'
    , 'react/lisb/ReactTransitionGroup': 'React.addons.TransitionGroup'
    , 'react/lib/ReactCSSTransitionGroup': 'React.addons.CSSTransitionGroup'
}, ...
在中导入时,您将可以作为全局变量MyLibrary.developer.TestMe(或MyLibrary.developer.default,具体取决于您导出组件的方式)访问TestMe组件。外部设置是为了防止Webpack包含最终捆绑包中的内容,而最终捆绑包已经包含在主应用程序中。否则你会得到一个非常大的文件包。如果您更喜欢UMD等,请查看LibraryTarget

这个故事的寓意是“当一切都失败时,再看一遍文档”。

我该如何问一个好问题?