Angular 2 — компилятор AoT

Я изучаю Angular 2, следуя этому https://angular.io/docs/ts/latest/cookbook/aot-compiler.html

И используйте эту команду для компиляции моего приложения.

"node_modules/.bin/ngc" -p tsconfig-aot.json

Однако я получил только сгенерированные node_modules, ничего из моего приложения. введите здесь описание изображения

Похоже, это проблема, можете ли вы помочь найти альтернативное решение?

а вот tsconfig-aot.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "es2015",
    "moduleResolution": "node",
    "outDir": "./aot",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true,
    "types": []
  },

  "files": [
    "app/app.module.ts",
    "app/main.ts"
  ],

  "angularCompilerOptions": {
    "genDir": "./aot",
    "skipMetadataEmit": true
  }
}

//https://github.com/angular/angular/issues/11689

и package.json

{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "^2.2.3",
    "@angular/compiler": "^2.2.3",
    "@angular/compiler-cli": "^2.2.3",
    "@angular/core": "^2.2.3",
    "@angular/forms": "^2.2.3",
    "@angular/http": "^2.2.3",
    "@angular/platform-browser": "^2.2.3",
    "@angular/platform-browser-dynamic": "^2.2.3",
    "@angular/platform-server": "^2.2.3",
    "@angular/router": "^3.2.3",
    "@angular/upgrade": "^2.2.3",
    "bootstrap": "^3.3.6",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.3",
    "rxjs": "^5.0.0-rc.4",
    "systemjs": "^0.19.41",
    "typescript": "^2.0.10",
    "typings": "^1.5.0",
    "zone.js": "^0.6.23"
  },
  "devDependencies": {
    "concurrently": "^2.2.0",
    "lite-server": "^2.2.2",
    "typescript": "^2.0.2",
    "typings": "^1.3.2"
  }
}

Отредактировано: я ищу, кто-то советует понизить тип скрипта до 2.0.10, помогает, но это не работает для меня.

Я использую Windows 7


person khoailang    schedule 28.11.2016    source источник


Ответы (1)


Я сомневаюсь, что для этого есть альтернативное решение, поскольку компилятор angular в основном обертывает компилятор машинописного текста. У меня не было возможности попробовать это в angular v2.4.0, но это можно исправить в этой версии компилятора angular.

Если вы все еще застряли в angular v2.2.3, то понижение typescript до 2.0.10 действительно работает. В вашем package.json убедитесь, что версия зависимости машинописного текста указана следующим образом:

"devDependencies": {
  ...
  "typescript": "~2.0.10",
  ...
}

или для этой конкретной версии, например:

"devDependencies": {
  ...
  "typescript": "2.0.10",
  ...
}

В вашем примере вы указали диапазон вставки, поэтому npm получил последнюю версию с основной версией 2, то есть 2.1.x. https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004

person Derek    schedule 29.12.2016
comment
В моем случае мне нужно было перейти на 2.0.2. Просто что бы ты знал. - person eko; 30.12.2016
comment
спасибо Дэрил и echomax, я переключаюсь на использование интерфейса командной строки Angular2, он отлично работает для меня. Я еще не пробовал ваше предложение, но ваш комментарий о диапазонах каретки действительно помогает - person khoailang; 17.01.2017