Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助让IE11使用Angular 1.5/Angular 10(ngUpgrade项目)_Angular_Webpack_Internet Explorer 11_Polyfills - Fatal编程技术网

需要帮助让IE11使用Angular 1.5/Angular 10(ngUpgrade项目)

需要帮助让IE11使用Angular 1.5/Angular 10(ngUpgrade项目),angular,webpack,internet-explorer-11,polyfills,Angular,Webpack,Internet Explorer 11,Polyfills,在我的ngUpgrade项目中,我遇到了让IE11工作的问题。我尝试了我所看到的一切,其他人也有类似的问题。我没有使用angular cli。独立网页包。我希望有人能看看我的代码,看看我的设置是否有任何明显的问题 这是我看到的IE11和一个空白页。 梅因酒店 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { setAngularLib } from '@angular/upg

在我的ngUpgrade项目中,我遇到了让IE11工作的问题。我尝试了我所看到的一切,其他人也有类似的问题。我没有使用angular cli。独立网页包。我希望有人能看看我的代码,看看我的设置是否有任何明显的问题

这是我看到的IE11和一个空白页。

梅因酒店

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { setAngularLib } from '@angular/upgrade/static';
declare var angular: angular.IAngularStatic;

import { AppModule } from './app.module.ts';

// Scss
import './core/styles/temporary.scss'

export function importAll(r) {
  r.keys().forEach(r);
};

// Typescript
importAll(require.context('../src', true, /module\.ts$/));
importAll(require.context('../src', true, /(^(?!.*(spec|module)\.ts).*\.ts)$/));

// Coffescript
importAll(require.context('../src', true, /module\.coffee$/));
importAll(require.context('../src', true, /(^(?!.*(spec|module)\.coffee).*\.coffee)$/));

// Images
importAll(require.context('../src', true, /.*\.(png|svg|ico|webmanifest)$/));

// Translations
importAll(require.context('../src', true, /.*\.json$/));

setAngularLib(angular);
platformBrowserDynamic().bootstrapModule(AppModule);
vendor.ts

//IE11 polyfills
require("../node_modules/core-js/es5/index")
require("../node_modules/core-js/es6/symbol")
require("../node_modules/core-js/es6/object")
require("../node_modules/core-js/es6/function")
require("../node_modules/core-js/es6/parse-int")
require("../node_modules/core-js/es6/parse-float")
require("../node_modules/core-js/es6/number")
require("../node_modules/core-js/es6/math")
require("../node_modules/core-js/es6/string")
require("../node_modules/core-js/es6/date")
require("../node_modules/core-js/es6/regexp")
require("../node_modules/core-js/es6/map")
require("../node_modules/core-js/es6/weak-map")
require("../node_modules/core-js/es6/set")
require("../node_modules/core-js/es6/array")
require("../node_modules/core-js/es6/reflect")
require("../node_modules/core-js/es7/object")
require("../node_modules/core-js/es7/array")
require("../node_modules/core-js/es7/reflect")
require("../node_modules/classlist.js")
require("../node_modules/web-animations-js")
require("../node_modules/reflect-metadata")
require("../node_modules/zone.js/dist/zone")

require("../node_modules/messageformat/messageformat.js")
require("../node_modules/angular/angular.js")
require("../node_modules/angular-google-analytics/dist/angular-google-analytics.js")
require("../node_modules/@uirouter/angularjs/release/angular-ui-router.js")
require("../vendor-js/lodash.js")
require("../vendor-js/ui-bootstrap.js")
require("../node_modules/angular-cookies/angular-cookies.js")

ect....
巴别塔

{
  "presets": [
    ["@babel/preset-env",{
      "modules": false
    }]
  ],
  "plugins": ["babel-plugin-angularjs-annotate"]
}
package.json

{
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "dev": "NODE_ENV=development webpack --config webpack.dev.js",
    "prod": "NODE_ENV=production webpack --config webpack.prod.js",
    "tsc": "tsc"
  },
  "browserslist": [
    "Edge > 13",
    "Firefox > 50",
    "Safari > 10",
    "Explorer > 10",
    "Chrome > 60"
  ],
  "dependencies": {
    "@angular-devkit/schematics": "^9.1.8",
    "@angular/common": "10.1.2",
    "@angular/compiler": "10.1.3",
    "@angular/compiler-cli": "10.1.3",
    "@angular/core": "10.1.3",
    "@angular/forms": "10.1.3",
    "@angular/http": "7.2.16",
    "@angular/platform-browser": "10.1.3",
    "@angular/platform-browser-dynamic": "10.1.3",
    "@angular/router": "10.1.2",
    "@angular/upgrade": "10.1.3",
    "@ng-bootstrap/ng-bootstrap": "7.0.0",
    "@ngx-translate/core": "12.0.0",
    "@ngx-translate/http-loader": "6.0.0",
    "@uirouter/angularjs": "1.0.26",
    "angular": "1.8.0",
    "angular-animate": "1.8.0",
    "angular-cookies": "1.8.0",
    "angular-file-upload": "2.5.0",
    "angular-google-analytics": "1.1.8",
    "angular-locker": "2.0.5",
    "angular-messages": "1.8.0",
    "angular-mocks": "1.8.0",
    "angular-phone-input": "^1.0.1",
    "angular-sanitize": "1.8.0",
    "angular-touch": "1.8.0",
    "angular-translate": "2.18.2",
    "angular-translate-interpolation-messageformat": "2.18.2",
    "angular-translate-loader-static-files": "2.18.2",
    "angular-translate-storage-cookie": "2.18.2",
    "angular-translate-storage-local": "2.18.2",
    "angular-utils-pagination": "0.11.1",
    "angular-validation-match": "1.9.0",
    "angularjs-rails-resource": "2.3.1",
    "classlist.js": "^1.1.20150312",
    "clipboard": "2.0.6",
    "highcharts": "7.0.2",
    "highcharts-ng": "1.2.1",
    "merge-jsons-webpack-plugin": "1.0.21",
    "messageformat": "2.3.0",
    "moment": "2.26.0",
    "ng-device-detector": "5.1.4",
    "ng-idle": "1.3.2",
    "ngclipboard": "2.0.0",
    "ngmap": "1.18.5",
    "npm": "6.14.5",
    "popper.js": "^1.16.1",
    "re-tree": "0.1.7",
    "reflect-metadata": "0.1.13",
    "rxjs": "6.5.5",
    "ua-device-detector": "1.1.8",
    "web-animations-js": "^2.3.2",
    "zone.js": "0.11.1"
  },
  "devDependencies": {
    "@babel/core": "7.10.2",
    "@babel/plugin-transform-object-assign": "7.10.1",
    "@babel/polyfill": "7.10.1",
    "@babel/preset-env": "7.10.2",
    "@types/angular": "^1.6.57",
    "@types/webpack-env": "1.15.2",
    "autoprefixer": "9.8.0",
    "babel-loader": "8.1.0",
    "babel-plugin-angularjs-annotate": "0.10.0",
    "coffee-loader": "1.0.0",
    "coffeescript": "2.5.1",
    "css-loader": "3.5.3",
    "del": "5.1.0",
    "file-loader": "6.0.0",
    "filemanager-webpack-plugin": "2.0.5",
    "html-loader": "1.1.0",
    "html-webpack-plugin": "4.3.0",
    "jasmine-core": "3.5.0",
    "jquery": "3.5.1",
    "karma": "5.1.0",
    "karma-chrome-launcher": "3.1.0",
    "karma-coffee-preprocessor": "1.0.1",
    "karma-jasmine": "3.3.1",
    "karma-ng-html2js-preprocessor": "1.0.0",
    "karma-phantomjs-launcher": "1.0.4",
    "karma-requirejs": "1.1.0",
    "mini-css-extract-plugin": "0.9.0",
    "node-sass": "4.14.1",
    "normalizr": "3.6.0",
    "postcss": "7.0.32",
    "q": "1.5.1",
    "require-dir": "1.2.0",
    "requirejs": "2.3.6",
    "sass-loader": "8.0.2",
    "string-replace-loader": "2.3.0",
    "style-loader": "1.2.1",
    "ts-loader": "7.0.5",
    "typescript": "3.9.5",
    "vinyl-paths": "3.0.1",
    "webpack": "4.43.0",
    "webpack-cli": "3.3.11",
    "webpack-merge": "4.2.2"
  },
  "resolutions": {
    "natives": "1.1.3"
  }
}
tsconfig

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es2015",
    "lib": ["es5", "es6", "dom"],
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowJs": true,
    "outDir": "foo"
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}
webpack.common

const moment = require("./node_modules/moment/moment.js")

const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const MergeJsonWebpackPlugin = require("merge-jsons-webpack-plugin");
const FileManagerPlugin = require('filemanager-webpack-plugin');


const dest = process.env.NODE_ENV === 'production' ? './dist' : './dev'

const cacheBustId = process.env.NODE_ENV === 'production' ? '-' + moment('123120202', 'YYYYMMDD') : ''

module.exports = {
  module: {
    rules: [{
        test: /\.(html)$/,
        use: [
          {
            loader: 'html-loader',
            options: {
              minimize: false,
              //minimize: process.env.NODE_ENV === 'production' ? true : false,
            },
          },
        ],
      },{
        test: /\.(js|coffee)$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
          options: {
            presets: [
              "@babel/env"
            ],
            plugins: [
              "@babel/plugin-transform-object-assign"
            ],
        }
      }
      },{
        "test": /\.coffee$/,
        "exclude": /node_modules/,
        "use": {
          loader: "coffee-loader"
        }
      },{
        test: /\.coffee$/,
        loader: 'string-replace-loader',
        options: {
          multiple: [
            { search: "'en-us': 'en-us.json'", replace: "'en-us': 'en-us" + cacheBustId + ".json'" },
            { search: "'es-us': 'es-us.json'", replace: "'es-us': 'es-us" + cacheBustId + ".json'" },
            { search: "'fr-ca': 'fr-ca.json'", replace: "'fr-ca': 'fr-ca" + cacheBustId + ".json'" }
          ]
        }
      },{
        // Mark files inside `@angular/core` as using SystemJS style dynamic imports.
        // Removing this will cause deprecation warnings to appear.
        test: /[\/\\]@angular[\/\\]core[\/\\].+\.js$/,
        parser: { system: true },  // enable SystemJS
      },{
        test: /\.tsx?$/,
        loader: 'ts-loader',
        exclude: /node_modules/,
      },{
        test: /\.(css|scss)$/,
        use: [{
          loader: MiniCssExtractPlugin.loader,
        },{
          loader: "css-loader"
        },{
          loader: "sass-loader"
        }]
      },{
        test: /\.(woff(2)?|ttf|eot)(\?v=\d+\.\d+\.\d+)?$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: process.env.NODE_ENV === 'production' ?  '[name]-[contentHash].[ext]' : '[name].[ext]',
              outputPath: '../fonts/'
            }
          }
        ]
      },{
        test: /\.(png|svg)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: '../img/'
            }
          }
        ]
      },{
        test: /\.(ico|webmanifest)$/,
        loader: 'file-loader?name=[name].[ext]'
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
      filename: '../index.html',
      hash: process.env.NODE_ENV === 'production' ? true : false
    }),
    new MiniCssExtractPlugin({
      filename: '../css/styles.css'
    }),
    new MergeJsonWebpackPlugin({
      "output": {
        "groupBy": [
          {
            "pattern": "./src/**/en-us.json",
            "fileName": process.env.NODE_ENV === 'production' ? "../locales/en-us" + cacheBustId + ".json" : "../locales/en-us.json"
          },{
            "pattern": "./src/**/es-us.json",
            "fileName": process.env.NODE_ENV === 'production' ? "../locales/es-us" + cacheBustId + ".json" : "../locales/es-us.json"
          },{
            "pattern": "./src/**/fr-ca.json",
            "fileName": process.env.NODE_ENV === 'production' ? "../locales/fr-ca" + cacheBustId + ".json" : "../locales/fr-ca.json"
          }
        ]
      },
    })
  ]
};
webpack.dev

const merge = require('webpack-merge');
const common = require('./webpack.common.js');

module.exports = merge(common, {
  mode: "development",
  entry: {
    poly: "@babel/polyfill",
    vendor: './src/vendor.js',
    app: "./src/main.ts"
  },
  output: {
    filename: '[name].js',
    path: __dirname + '/dev/js'
  },
  watch: true,
  stats: 'normal',
});

如果你想让它在IE11中工作,首先将IE11添加到你的浏览器列表中。
“Explorer>10”
你必须创建es5代码来支持IE11。所以你可能想研究一下网页包的差异化服务。我同意鲁本的建议,将IE 11添加到浏览器列表中。此外,您需要在tsconfig.json文件中设置
“target”:“es5”
,以使您的站点在IE浏览器中正常工作。必须采用差异加载方式。谢谢@fridoo