我正在制作一个小应用程序,它将作为外部程序包包含在另一个更大的项目中(我们称之为Main项目)。 我正在使用“Create React App”。
它运行正常,但我想构建我的应用程序而不将React包含到bundle文件中,因为Main项目也将React作为依赖项用于其他目的。
现在我正在尝试下一步:
我在项目中运行了“弹出”脚本,所以现在我可以访问webpack配置。
在webpack.config.dev.js文件中,我添加了下一个属性:
$ bar () { MYVAR=bar; }
$ bar
$ echo $MYVAR
bar
现在,据我所知,我需要将React和ReactDom包含在我公共文件夹中的index.html中。
在body标签中,我包含了两个来自React CDN的脚本:
https://reactjs.org/docs/cdn-links.html
但是当我运行npm start时它不起作用并抛出错误:
未捕获的TypeError:无法读取未定义的属性“Component”
如何配置“创建React App”以从捆绑包中排除React?
谢谢!
答案 0 :(得分:1)
不要构建你的应用程序,将其传递给其他人,并要求他将应用程序集成在一起,然后这两个应用程序将使用相同的依赖项。如果您构建应用程序,则有可能使用相同的依赖项。当第二个人再次构建应用程序时,将再次添加相同的依赖项。您可以使用Lerna将应用分成多个模块。它将单独处理所有包,您可以将一个包导入到其他包中,而所有包都具有独立的依赖关系。
根据Lerna
将大型代码库拆分为单独的独立版本包对于代码共享非常有用。但是,在许多存储库中进行更改很麻烦且难以跟踪,跨存储库的测试变得非常复杂。
答案 1 :(得分:0)
试试这个:
externals: {
react: 'React',
'react-dom': 'ReactDOM'
}
另外,请勿将它们添加到body标签中。将它们添加到头部。最后,必须在捆绑文件之前添加它们。