替代导入全局ES6常量

时间:2018-09-13 07:58:43

标签: javascript es6-modules

我正在使用Sage 9开发WordPress主题,并试图将文件拆分为更干净的代码,以获得更干净的代码。我正在使用webpack在本地捆绑JavaScript。

有一个设置为仅在某些页面上运行JavaScript的路由器。但是,当我尝试将文件内容导入为常量时,它是全局范围的,并在首页上引起问题。以下示例应更好地说明:

// formPage.js (the init function is only run on the form page)
import { validateAge } from '../modules/validateAge';
export default {
  init() {
    // Javascript to be fired on the form page
    new validateAge();
  },
};

// ../modules/validateAge.js
export const validateAge = Marionette.Object.extend({
  ...
}

如何在不将木偶对象置于全局范围内的情况下重写它?这在主页上失败,因为“木偶”依赖项仅加载在表单页面上(与捆绑包分开),而不是主页上。

1 个答案:

答案 0 :(得分:0)

好吧,我通过导出为函数而不是常量来解决此问题,因此对Marionette调用进行了范围界定。