Файл Typescript перестал получать сообщение после обновления Angular 9 с модулем esnext - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть файл машинописного текста (git -version.ts) в местоположении root моего проекта, который используется в конвейере CI Jenkins для чтения последней фиксации / ревизии, которая вызвала сборку CI (она использует ts -узел запустить этот файл TS). Ниже приведен краткий обзор структуры моего проекта:

root
 |_src/
 |_angular.json
 |_git-version.ts
 |_package.json
 |_tsconfig.json

Раньше он прекрасно работал с Angular 7, но, похоже, не работает с загрузчиком модуля deneult esnext Angular 9. Когда я изменил мой модуль для 'common js' в текущих angular 9 настройках tsconfig, он работает абсолютно нормально. Но затем я теряю преимущество функции дифференциальной загрузки, так как commn js имеет тенденцию создавать один единственный пакет для всего моего приложения. Итак, мне пришлось переключиться обратно на «esnext». Ниже приведены мои текущие настройки tsconfig. json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "downlevelIteration": true,
    "importHelpers": true,
    "module": "esnext",
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "enableIvy": true
  }
}

Я также попытался изменить расширение указанного файла ts на js, но затем он начал выдавать другое исключение, "SyntaxError : Невозможно использовать оператор импорта вне модуля ". Очевидно, мне нужен способ загрузить этот ts-файл, используя «common js», и все еще использовать «esnext» для остальной части всего приложения.

...