IE11 не отвечает из-за длительной ошибки скрипта с Webpack + React + TypeScript - PullRequest
0 голосов
/ 23 апреля 2020

Я использую webpack 4.*, чтобы связать мой react 16.* и typescript 3.* проект! На нашем любимом inte rnet explorer 11 я получаю: не отвечает на долго выполняющуюся ошибку сценария и проект никогда не загружается ... как на локальном, так и на тестовом сервере (рабочий режим)

Я могу не узнать, какая сторона проекта не поддерживается IE11, так как он не дает мне столько информации, и я также не смог найти ничего похожего в inte rnet ... вот как это выглядит:

enter image description here

и мои соответствующие настройки:

webpack.base.js

module.exports = {
    entry: {
        app: path.resolve(__dirname, "./src/index.tsx"),
    },
    output: {
        path: path.resolve(__dirname, "./build/dist"),
        publicPath: "public",
    },
    resolve: {
        extensions: [".ts", ".tsx", ".js", ".json", ".sass"],
        alias: {
            // .... some internal aliases
        },
    },
    module: {
        rules: [
            {
                enforce: "pre",
                test: /\.(ts|tsx)$/,
                exclude: /node_modules/,
                loader: "eslint-loader",
            },
            {
                test: /\.(ts|tsx)?$/,
                exclude: /node_modules/,
                loader: "ts-loader",
            },
            {
                test: /\.(gif|jpg|jpeg|svg|png|webp|eot|otf|ttf|woff|woff2|mp4|ogg|webm)$/i,
                loader: "url-loader",
                options: {
                    limit: 1,
                    name: "[name].[hash:8].[ext]",
                },
            },
        ],
    },
    optimization: {
        runtimeChunk: "single",
        splitChunks: {
            chunks: "all",
            cacheGroups: {
                vendor: {
                    test: /[\\/]node_modules[\\/]/,
                    chunks: "initial",
                    name: "vendor",
                    enforce: true,
                },
            },
        },
    },
    plugins: [
        new webpack.DefinePlugin({
            // ...
        }),
        new HtmlWebpackPlugin({
            template: "src/index.ejs",
            hash: true,
            // ... some internal values to be injected to the template, like gtm and etc
        }),
    ],
}

tsconfig.json

"compilerOptions": {
    "module": "esnext",
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "esModuleInterop": true,
    "jsx": "react",
    "moduleResolution": "node",
    ...
}

index.tsx

import "react-app-polyfill/ie11";
import "react-app-polyfill/stable";
import React from "react";
...

Я думаю, что это может быть больше связано с моим кодом, чем с библиотеками третьих сторон ... У меня нет jQuary используемого и тот же самый код прекрасно работает с NWB ! Я просто изменил пакет на webpack и обновил пакеты npm до их последних версий

Если понадобилась дополнительная информация, я могу поделиться ею через обновления

1 Ответ

0 голосов
/ 28 апреля 2020

Проблема была в огромной утечке памяти, вызванной каким-то образом xregexp@4.3.0!

enter image description here

Так как он использовался только в двух местах я избавился от пакета и заменил его встроенным RegExp, и теперь все в порядке!

Моя первоначальная ошибка заключалась в том, что я слишком полагался на вкладку Network! Performance раздел в DevTool был намного более эффективным и полезным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...