Meteor 未捕获类型错误:require.sure不是Object.getComponent(ECMASCRIPT)上的函数

Meteor 未捕获类型错误:require.sure不是Object.getComponent(ECMASCRIPT)上的函数,meteor,ecmascript-6,atmosphere,Meteor,Ecmascript 6,Atmosphere,我正在移植我的meteor项目,使用ecmascript而不是webpack/babel。还升级了我的meteor(从1.4升级到1.7)和react(从15.3.2升级到16.8.6) routes.jsx 出现以下错误: 未捕获类型错误:require.sure不是函数 在Object.getComponent(routes.jsx:20) 在GetComponents错误(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38

我正在移植我的meteor项目,使用ecmascript而不是webpack/babel。还升级了我的meteor(从1.4升级到1.7)和react(从15.3.2升级到16.8.6)

routes.jsx

出现以下错误:

未捕获类型错误:require.sure不是函数
在Object.getComponent(routes.jsx:20)
在GetComponents错误(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38035)
at modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38053
在modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37842
在Array.forEach()处
在mapAsync(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37841)
在getComponents(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38052)
在FinishInterhooks(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37263)
下一步(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37810)
在loopAsync(modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37814

有没有关于如何移植的建议?

这是如何摆脱require的。请确保:

routes.jsx(最终版)

注: 1) 这就是如何从
require.确保
(由webpack使用)迁移到而不依赖webpack(这是我完全使用Meteor Atmosphere运行时的情况)

2)
mod
require(…).xxx
已更改为
mod.default
require(…).default
如果
reducer
函数导出为
export default
,否则不会调用
reducer

是否有具体的技术原因,为什么不更新为1.9?不太清楚。然而,我更关心的是破坏性的变化。因此不打算跳过太多的version.FYI,仍然使用react router v3。没有计划对react路由器v4进行大规模更改。
import * as React from 'react';

export default function (injectDeps, {Store, Routes}) {
  const route = {
    path: 'tickets',
    onEnter: (nextState, replace) => {
      if (!Meteor.userId() || !Roles.userIsInRole(Meteor.userId(), 'staff', Roles.GLOBAL_GROUP)) {
        replace('/login');
      }
    },
    getComponent(nextState, cb) {
      require.ensure([], (require) => {
        Store.injectReducer('tickets', require('./reducers'));
        cb(null, require('./containers/list.js'));
      }, 'tickets');
    },
    childRoutes: [
      {
        path: ':_id',
        getComponent(nextState, cb) {
          require.ensure([], (require) => {
            Store.injectReducer('tickets', require('./reducers'));
            cb(null, require('./containers/view.js'));
          }, 'tickets.view');
        }
      }
    ]
  };

  Routes.injectChildRoute(route);
}
Uncaught TypeError: require.ensure is not a function
    at Object.getComponent (routes.jsx:20)
    at getComponentsForRoute (modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38035)
    at modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38053
    at modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37842
    at Array.forEach (<anonymous>)
    at mapAsync (modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37841)
    at getComponents (modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:38052)
    at finishEnterHooks (modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37263)
    at next (modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37810)
    at loopAsync (modules.js?hash=d04d5856a2fe2fa5c3dc6837e85d41adc321ecb2:37814
{
    path: 'config',
    getComponent(nextState, cb) {
        import('./containers/config').then(mod => {
            Store.injectReducer('config', require('./reducers/config').default);
            cb(null, mod.default);
        });
    }
}