Недавно наша сборка перестала работать на IE11 из-за того, что в файле манифеста веб-пакета есть .includes
, который IE11 не может запустить.
Я копался в этом и обнаружил, что react-datepicker
использует .includes()
в своем коде, но в нашем файле main.app.js
он конвертирует его, так что там ничего нет, он есть только в файле манифеста.
Если я удалю файл манифеста из нашего веб-пакета, ошибка переместится в файл main.app.js
со словами object doesn't support property or method includes
. Эта ошибка исходит от camelCase.js из redux-actions
. Я чувствую, что это красная сельдь, но не совсем уверен.
Я не уверен, что это проблема с веб-пакетом, вавилонским сообщением или ошибкой плагина.
кто-нибудь когда-либо испытывал это раньше и знает, как решить?
Шаги, которые я сделал до сих пор :
Я заблокировал реакцию на версию 16.3.0 в нашем package.json.
Я понизил плагин react-datepicker
.
Я удалил файл манифеста из загрузки.
Я попытался обновить redux-actions
.
Я попытался понизить рейтинг redux-actions
Вот мой файл веб-пакета:
const pkg = require('../package.json');
const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const appConfig = {
VERSION: pkg.version,
OUTPUT_NAME: pkg.config.OUTPUT_NAME,
DEV_PORT: pkg.config.DEV_PORT
};
const config = {
mode: 'development',
context: path.resolve(__dirname),
entry: {
app: [
'../src/index.js',
'../src/styles/main.css',
'../index.pug'
]
},
output: {
path: path.resolve(__dirname, '../public/'),
filename: `scripts/${appConfig.OUTPUT_NAME}.[name].${appConfig.VERSION}.js`,
publicPath: '/'
},
resolve: {
extensions: [ '.js', '.jsx' ]
},
externals: {
'lottie-web': 'lottie'
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: 'babel-loader'
},
{
test: /\.(css|scss)$/,
exclude: /node_modules/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
sourceMap: true,
importLoaders: 1
}
},
'postcss-loader'
]
},
{
test: /\.pug/,
exclude: /node_modules/,
use: 'pug-loader'
},
{
test: /.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/,
exclude: /node_modules/,
use: 'file-loader'
}
]
},
watch: true,
watchOptions: {
ignored: /node_modules/
},
devServer: {
contentBase: path.resolve(__dirname, '../public/'),
port: appConfig.DEV_PORT,
historyApiFallback: true
},
devtool: 'source-map',
optimization: {
runtimeChunk: 'single',
splitChunks: {
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name: 'manifest',
chunks: 'all'
}
}
}
},
plugins: [
new ExtractTextPlugin(`../styles/${appConfig.OUTPUT_NAME}.[name].${appConfig.VERSION}.css`),
new CopyWebpackPlugin([
{ from: '../src/assets', to: path.resolve(__dirname, '../public/assets') },
{ from: '../src/content', to: path.resolve(__dirname, '../public/content') }
]),
new HtmlWebpackPlugin({ 'template': '../index.pug' })
]
};
module.exports = config;