При запуске столпотворения над моей ES6 импортирует переименовывает моим импортирует весь путь через мой источник:Бабель ES6 модули: Почему Бабель импорт переименования
import {foo as bar} from './bar';
console.log(bar);
становится
'use strict';
var _bar = require('./bar');
console.log(_bar.foo);
Именованной импорт переименовывается от:
import {bar} from './bar';
console.log(bar);
в
'use strict';
var _bar = require('./bar');
console.log(_bar.bar);
А еще хуже импорта по умолчанию, так как 2 также добавил:
import bar from './bar';
console.log(bar);
становится
'use strict';
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _bar = require('./bar');
var _bar2 = _interopRequireDefault(_bar);
console.log(_bar2['default']);
Почему столпотворение делает это? Справочная информация. При отладке приложения в Chrome мне нужно перейти в исходный файл, чтобы узнать, как переменная была переименована, чтобы получить ее текущее значение, поскольку Chrome не знает, что bar
был переименован в _bar.bar
... Он делает отладку с помощью инструменты, такие как WebStorm практически невозможно ...
Почему не может столпотворение преобразовать именованный импорт в
'use strict';
var _bar = require('./bar');
var bar = _bar.bar;
console.log(bar);
и импорта по умолчанию для
'use strict';
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _bar = require('./bar');
var _bar2 = _interopRequireDefault(_bar);
var bar = _bar2['default']
console.log(bar);
Я не могу ответить на * почему *, но вы должны генерировать [sourcemaps] (https://www.npmjs.com/package/gulp-babel#source-maps), чтобы отлаживать или вы у вас будет гораздо сложнее отладить поиск имени модулей. – CodingIntrigue
Я генерирую исходные коды, но, насколько я знаю, Chrome Inspector не знает об источниках и не может обнаружить переименование переменной ... Также отладчик «прыгает» в нужный исходный файл, но не может проверять переменные. – david
«* Почему бабеля невозможно преобразовать ... *" - это, безусловно, может, это просто не то, что они сделали. Я не думаю, что есть веские причины для выбора одного над другим, кроме отладки, поскольку они оцениваются эквивалентно. Возможно, вам захочется открыть ошибку (запрос функции?), Если вам это интересно. – Bergi