我正在处理两个网络应用程序(一个用于桌面,一个用于移动),它们将共享(希望)80%的代码。
我使用ES6模块和webpack来创建JS包。
现在,共享代码很容易。问题在于未共享的代码。每个应用程序中的代码都不同。
例如,我们说我有两个javascript文件:
app.js(在不同的上下文之间共享 - 网络和移动设备):
import foo from './foo';
// ...
foo.js(网络):
export default foo = () => {
//do some web logic ...
}
foo.js(手机):
export default foo = () => {
//do some mobile logic ...
}
请注意,app.js
是在应用之间共享的,它使用的foo.js
在每个应用中都有不同的实现方式。我想创建两个bundle,每个bundle都有一个。
处理这种情况的正确方法是什么?
我可以想到像React Native这样的东西 - 用后缀创建两个文件:
foo.web.js
foo.mobile.js
但仍然按相同的路径导入它们:./foo
;并使用webpack创建两个包,并根据应用程序的类型获取正确的文件。
有更好的方法吗?