Angular2: использование ngc вместо tsc, получение TypeError: не удается прочитать свойство "text" undefined

Текущее поведение

Запуск tsc с моим lib работает хорошо, но я пытаюсь перейти на ngc, поскольку я понимаю, что это делает лучшую транплатацию.

ошибка:

root@DESKTOP-VEUHFOL /cygdrive/c/msweb/ng-mslib
$ ./node_modules/.bin/ngc -p ./tsconfig.json
TypeError: Cannot read property 'text' of undefined
    at NodeObject.getText (C:mswebng-mslibnode_modulestypescriptlibtypescript.js:78080:30)
    at Evaluator.evaluateNode (C:mswebng-mslibnode_modules@angularcompiler-clinode_modules@angulartsc-wrappedsrcevaluator.js:512:66)
    at _loop_1 (C:mswebng-mslibnode_modules@angularcompiler-clinode_modules@angulartsc-wrappedsrccollector.js:351:54)
    at C:mswebng-mslibnode_modules@angularcompiler-clinode_modules@angulartsc-wrappedsrccollector.js:410:25
    at visitEachNode (C:mswebng-mslibnode_modulestypescriptlibtypescript.js:13907:30)
    at Object.forEachChild (C:mswebng-mslibnode_modulestypescriptlibtypescript.js:14078:24)
    at MetadataCollector.getMetadata (C:mswebng-mslibnode_modules@angularcompiler-clinode_modules@angulartsc-wrappedsrccollector.js:233:12)
    at MetadataWriterHost.writeMetadata (C:mswebng-mslibnode_modules@angularcompiler-clinode_modules@angulartsc-wrappedsrccompiler_host.js:151:51)
    at MetadataWriterHost.writeFile (C:mswebng-mslibnode_modules@angularcompiler-clinode_modules@angulartsc-wrappedsrccompiler_host.js:143:19)
    at Object.writeFile (C:mswebng-mslibnode_modulestypescriptlibtypescript.js:62522:132)
Compilation failed

но опять же нет проблем с tsc

tsconfig:

{
  "compilerOptions": {
    "baseUrl": "",
    "declaration": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "strictNullChecks": false,
    "noImplicitAny": false,
    "lib": ["es2015", "dom"],
    "mapRoot": "./",
    "module": "es2015",
    "moduleResolution": "node",
    "outDir": "dist",
    "sourceMap": true,
    "target": "es5",
    "skipLibCheck": true,
    "paths": {
      "@angular/core": ["node_modules/@angular/core"],
      "rxjs/*": ["node_modules/rxjs/*"]
    },
    "typeRoots": [
      "../node_modules/@types"
    ]
  },
  "angularCompilerOptions": {
    "strictMetadataEmit": true
  }
}

Ожидаемое поведение
Я ожидаю, что ngc пройдет, если tsc сделает это

Минимальное воспроизведение задачи с инструкциями
это проект:
https://github.com/born2net/ng-mslib
вы можете просто запустить tsc и ngc, чтобы увидеть разницу

Windows 10 x64 последние версии ts 2.1 и ng 2.4.1
Узел: v6.5.0

с уважением

Шон

1 ответ

  1. проблема была в том, что требовалось tsc 2.0.10
    исправлено с более старым typescript до 2.1 поддерживается ngc