Я получаю эту ошибку в IE:
SCRIPT1010: ожидаемый идентификатор bundle.js
Я нашел решение в виде модуля под названием target-webpack-plugin , который работает как шарм, но также создал новую проблему в моем приложении. Всякий раз, когда я пытаюсь выполнить отладку в Google Chrome через исходные карты, вместо отображения источника файла, содержащего ошибку, он выглядит так:
ReferenceError: родители не определены
в deserializeParent (bundle.js: 16180)
на bundle.js: 16192
Похоже, исходные карты не функционировали должным образом. Это будет ожидаемый результат:
ReferenceError: родители не определены
at deserializeParent (account.ts: 44)
at account.ts: 117
Теперь удаление target-webpack-plugin вернет меня к той же проблеме - не запускать мое приложение в IE. Вот мои конфигурации веб-пакетов:
module.exports = {
context: path.dirname(__dirname),
entry: {
app: './src/main.js',
},
target: 'web',
output: {
filename: '[name].[contenthash].js',
hashDigestLength: 8,
},
resolve: {
extensions: ['.ts', '.js', '.vue'],
alias: {
'@': path.resolve(__dirname, '../src'),
},
},
module: {
rules: [
{
test: /\.js/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
{
test: /\.ts$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
},
{
loader: 'ts-loader',
options: {
transpileOnly: true,
},
},
],
},
{
test: /\.vue$/,
loader: 'vue-loader',
},
{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
],
},
{
test: /\.scss$/,
use: [
'style-loader',
'css-loader',
'sass-loader',
],
},
],
},
stats: 'errors-only',
plugins: [
new VueLoaderPlugin(),
new ForkTsCheckerWebpackPlugin({
tslint: true,
reportFiles: ['src/**/*.ts'],
}),
new StylishWebpackPlugin(),
new webpack.DefinePlugin({
USE_LOGROCKET: withLogRocket,
}),
// new TargetsPlugin({
// browsers: ['last 2 versions', 'chrome >= 41', 'not ie <= 8', '> 1%'],
// }),
],
};
Выше приведена базовая конфигурация веб-пакета, а вот моя конфигурация dev-пакета:
module.exports = merge(baseConfig, {
mode: 'development',
devtool: 'source-map',
output: {
filename: 'bundle.js',
publicPath: 'https://localhost:8080/',
},
module: {
rules: [
{
test: /\.(png|jpe?g|gif|webp)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 4096,
name: 'img/[name].[hash:8].[ext]',
},
},
],
},
],
},
});
И, наконец, вот мой файл .babelrc:
{
"presets": ["env"],
"plugins": [
"transform-es2015-destructuring",
"transform-object-rest-spread"
]
}
Я пытался это и это безрезультатно. Я попытался изменить свой файл babelrc с предложением по вышеупомянутой ссылке, так как он не работал, мне пришлось вернуться. Я также пробовал es3ify, но мне кажется, что распространение должно быть последним элементом списка элементов при компиляции моего кода. Я также попытался использовать babel-polyfill , но без сигары, поэтому мне пришлось вернуться к исходной конфигурации веб-пакета. У меня также уже есть <meta name="viewport" content="width=device-width, initial-scale=1">
в моем файле index.html, но, похоже, он мне тоже не помог. Есть ли способ, которым я могу решить проблему IE, не нарушая при этом исходные карты (в Chrome)? Любой узел модуля или некоторые изменения в конфигурации, которые могут мне помочь?
РЕДАКТИРОВАТЬ: я также пробовал babel-preset-env, но тоже не работал.
РЕДАКТИРОВАТЬ: протестировано на IE 11