Javascript Babel/Webpack未在生产生成中编译export语句之外的变量
所以我有这个文件:Javascript Babel/Webpack未在生产生成中编译export语句之外的变量,javascript,webpack,ecmascript-6,babeljs,Javascript,Webpack,Ecmascript 6,Babeljs,所以我有这个文件: const EVENT_CALENDAR_DATE_SELECTED_CHECKOUT = 'calendar/date/selected/checkout'; const EVENT_BOOKER_VALID_OCB_CLICK = 'booker/ocb/valid-click'; const EVENT_DESTINATION_SELECTED = 'booker/destination/selected'; export default { constru
const EVENT_CALENDAR_DATE_SELECTED_CHECKOUT = 'calendar/date/selected/checkout';
const EVENT_BOOKER_VALID_OCB_CLICK = 'booker/ocb/valid-click';
const EVENT_DESTINATION_SELECTED = 'booker/destination/selected';
export default {
constructors: [ 'ready', 'events' ],
....
在开发模式下编译时,会导致
var EVENT_CALENDAR_DATE_SELECTED_CHECKOUT = 'calendar/date/selected/checkout';
var EVENT_BOOKER_VALID_OCB_CLICK = 'booker/ocb/valid-click';
var EVENT_DESTINATION_SELECTED = 'booker/destination/selected';
/* harmony default export */ __webpack_exports__["default"] = ({
constructors: ['ready', 'events'],
....
然而,在生产中,这三个变量只是缺失了。我得到“xx未定义。”错误。代码中是否有引用变量的内容?是的,有。在多个地方。我刚刚发现,如果我写
window.EVENT\u CALENDAR\u DATE\u SELECTED\u CHECKOUT='CALENDAR/DATE/SELECTED/CHECKOUT',它是有效的代码>在声明中。但这不是一个解决方案。您可能需要提供更具体的信息。如果您不导出它们,则该变量将不存在于该模块之外--您在哪里看到错误?我希望webpack将变量编译到代码中。不幸的是,这是一个遗留项目,我需要让它像这样工作,因为有太多对事件名称变量的引用。你认为这对我有帮助吗?“将变量编译成代码”是什么意思?如果您想说希望在窗口
上自动定义这些变量,可以使用global.FOO_BAR='baz'
,尽管这有点违背了清理的目的。