我支持一个相对复杂的遗留代码库,但我希望通过引入 Webpack 对其进行一些现代化改造,以便我们在 JS 中具有导入和导出功能。
我遇到的问题是我们使用了一个名为 App 的全局对象,我们根据页面定义和添加不同的属性。因此,例如,我们有以下文件,我们在其中实例化 App(加载到所有页面上):
应用程序.js
const App = (() => {
const obj = {
Lib: {},
Util: {},
// etc
}
return obj;
})();
然后在另一个文件中,我们仅为需要它的特定页面添加到 App.Lib:
懒加载.js
App.Lib.Lazyload = (() => {
// lazyload logic
})();
我们只是在捆绑过程中连接文件,但显然这并不理想,因为没有一个文件不知道在它之外发生了什么。
导出似乎仅适用于顶级对象(定义对象的位置),因此我在其他地方添加的任何内容都无法再次导出。例如,如果我在lazyload.jsexport default App.Lib.Lazyload;
的末尾添加,然后尝试在其他地方导入它,它将不会导入 Lazyload 属性。
有没有办法在没有重大重构的情况下让它工作?如果没有,您对处理它的最佳方法有什么建议吗?