Это похоже на то, что должно было быть относительно простым для достижения, но, увы.
У меня класс ES6:
'use strict';
export class BaseModel {
constructor(options) {
console.log(options);
}
};
и корневой модуль, который использует его:
'use strict';
import {BaseModel} from './base/model.js';
export let init = function init() {
console.log('In Bundle');
new BaseModel({a: 30});
};
Моя цель:
- передайте выше через Babel, чтобы получить код ES5
- упакуйте модули с помощью webpack
- возможность отладки результата
После некоторой пробной версии это конфигурация webpack, которая у меня есть:
{
entry: {
app: PATH.resolve(__dirname, 'src/bundle.js'),
},
output: {
path: PATH.resolve(__dirname, 'public/js'),
filename: 'bundle.js'
},
devtool: 'inline-source-map',
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel'
}
]
}
}
Кажется, что это работает, в некоторой степени.
Итак, я могу это сделать:
Я могу нажать F11 и ввести код, но я не могу оценить BaseModel
:
который как бы побеждает цель (или одну из целей) отладки.
Я пробовал добавить source-map-loader
в различном порядке с помощью babel-loader
:
{
test: /\.js$/,
loader: "source-map-loader"
}
безрезультатно.
Боковое примечание 1: если я откажусь от webpack и просто скомпилирую свои модули с исходными картами через Babel, скажем, System.js:
babel src/ --out-dir public/js/ --debug --source-maps inline --modules system
- все работает правильно.
Боковое примечание 2: этот ?sourceMaps=true
, похоже, ничего не делает, поскольку, если я удаляю конфигурацию исходной карты из webpack - никакие исходные карты не сохраняются/не создаются вообще. Можно было бы ожидать, что исходные, исходные карты Babel будут сохранены в результирующих файлах. Нет.
Любые предложения будут очень признательны