До этого, babel добавит строку module.exports = exports["default"]
. Это уже не так. Что это означает, прежде чем я смог:
var foo = require('./foo');
// use foo
Теперь я должен сделать это:
var foo = require('./foo').default;
// use foo
Не огромная сделка (и я предполагаю, что это должно было быть все время). Проблема в том, что у меня много кода, который зависел от того, как все работает (я могу преобразовать большую часть его в импорт ES6, но не все). Может ли кто-нибудь дать мне советы о том, как сделать старый способ работы без необходимости проходить через мой проект и исправить это (или даже некоторая инструкция о том, как писать код, чтобы сделать это, была бы довольно гладкой).
Спасибо!
Пример:
Input:
const foo = {}
export default foo
Выход с Babel 5
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
module.exports = exports["default"];
Выход с Babel 6 (и плагин es2015):
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
Обратите внимание, что единственная разница в выходе - module.exports = exports["default"]
.
Изменить
Возможно, вас заинтересует этот blogpost, который я написал после решения моей конкретной проблемы: Непонимание модулей ES6, обновление Babel, Tears и решение