Meteor 未捕获类型错误:require.sure不是Object.getComponent(ECMASCRIPT)上的函数
我正在移植我的meteor项目,使用ecmascript而不是webpack/babel。还升级了我的meteor(从1.4升级到1.7)和react(从15.3.2升级到16.8.6) routes.jsx 出现以下错误: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
未捕获类型错误: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);
});
}
}