在网络应用之间共享javascript代码

时间:2017-07-09 14:24:53

标签: webpack ecmascript-6 webpack-2 es6-modules

我正在处理两个网络应用程序(一个用于桌面,一个用于移动),它们将共享(希望)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创建两个包,并根据应用程序的类型获取正确的文件。

有更好的方法吗?

0 个答案:

没有答案