ES6 需要配置 webpack 吗?

2023-12-01

我有一个 Angular 应用程序,其中包含针对 ES6 的 .tsconfig 文件。

{
  "compileOnSave": false,
  "compilerOptions": {
    "allowJs": true,
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom",
      "es2018.promise"
    ]
  }
}

以下角度分量(Typescript):

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';

import { DispositifsDATIRoutingModule } from './dispositifsDATI.routes';
import { SharedModule } from '../shared/shared.module';
import { DISPOSITIFS_DATI_COMPONENTS } from './index';

import { InputUtilitiesModule } from 'ng-uikit-pro-standard';
import { MaterialChipsModule, BadgeModule, IconsModule, WavesModule } from 'ng-uikit-pro-standard';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    SharedModule,
    HttpClientModule,
    DispositifsDATIRoutingModule,
    InputUtilitiesModule,
    MaterialChipsModule,
    BadgeModule,
    IconsModule,
    WavesModule
  ],

  declarations: [DISPOSITIFS_DATI_COMPONENTS]
})

export class DispositifsDATIModule { }

由 webpack 转译为:

/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DispositifsDATIModule", function() { return DispositifsDATIModule; });

在运行时失败:

ReferenceError:初始化之前无法访问“DispositifsDATIModule”

我不知道这里发生了什么事。

围绕 ES6 的使用,webpack 配置中是否需要更改一些内容?


编辑:这似乎是一个问题angular和/或打字稿关于ES2015


我猜你在这里有循环依赖,你的组件文件(假设它是MyComponent.ts) 进口DISPOSITIFS_DATI_COMPONENTS来自./index.ts while index.ts从导入组件./MyComponent.ts.

所以他们互相依赖。在这种情况下,DISPOSITIFS_DATI_COMPONENTS使用时可能未初始化。

我会将其提取到第三个文件以避免循环依赖

UPD:这是一篇有用的文章https://blog.angularindepth.com/how-to-break-a-cycling-dependency- Between-es6-modules-fd8ede198596

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6 需要配置 webpack 吗? 的相关文章

随机推荐