Вот моментальный снимок части моего скрипта после компиляции:
Я не понимаю, почему он не конвертирует new.target
в this.constructor
?
Пример:
class IList {
constructor() {
console.log('compare using new.target:', new.target === IList);
console.log('compare using this.constructor:', this.constructor === IList);
}
}
new IList();
Я хочу, чтобы он this.constructor
это, потому что я могу использовать this.constructor
в браузерах, которые не поддерживают es6, а new.target
требует.
Должен ли я сообщить об этом команде webpack?
ОБНОВИТЬ:
webpack.config.js
:
let webpack = require('webpack'),
path = require('path'),
BabiliPlugin = require("babili-webpack-plugin");
module.exports = {
entry: {
'site': './assets/js/site',
'site.min': './assets/js/site'
},
output: {
publicPath: '/js/',
path: path.join(__dirname, '/wwwroot/js/'),
filename: '[name].js'
},
module: {
loaders: [
{
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'stage-1']
}
}
]
},
plugins: [
new BabiliPlugin({}, {
test: /\.min\.js$/
}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
};
Похоже, эта проблема решена в Babel 7. См. Https://github.com/babel/babel/pull/5906
Похоже, что он включен в сборку предварительного выпуска: https://github.com/babel/babel/releases
new.target
не была изменена.