Что такое определение проекта в Angular? - PullRequest
0 голосов
/ 03 ноября 2018

Когда я тестирую свой Angular-проект на Travis-CI, появляются два исключения:

$ ng test
The test command requires to be run in an Angular project, but a project definition could not be found.
The command "ng test" exited with 1.

$ ng e2e
The e2e command requires to be run in an Angular project, but a project definition could not be found.
The command "ng e2e" exited with 1.

Сообщение об ошибке довольно запутанно. Я погуглил насчет " Angular Project Definition ", но ничего релевантного не найдено.

Я проверил Angular CLI wiki , но нет никакой полезной информации о ng test и ng e2e, не говоря уже об определении « определение проекта ».


Мой проект на Github:

https://github.com/donizyo/ng-dementor

Моя среда разработки:

$ ng version
Angular CLI: 7.0.3
Node: 11.1.0
OS: linux x64
Angular: 5.2.11
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.10.3
@angular-devkit/core         7.0.3
@angular-devkit/schematics   7.0.3
@angular/cli                 7.0.3
@schematics/angular          7.0.3
@schematics/update           0.10.3
rxjs                         5.5.12
typescript                   2.5.3

Необработанный журнал Travis-CI можно найти здесь .


ОБНОВЛЕНИЕ 1

Я только что установил последнюю версию Angular CLI (v7.0.4) на мой ПК,

$ ng version
Angular CLI: 7.0.4
Node: 8.9.3
OS: win32 ia32
Angular: <error>
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.10.4 (cli-only)
@angular-devkit/core         7.0.4 (cli-only)
@angular-devkit/schematics   7.0.4 (cli-only)
@schematics/angular          7.0.4 (cli-only)
@schematics/update           0.10.4 (cli-only)
rxjs                         6.3.3 (cli-only)
typescript                   3.1.3 (cli-only)

и сгенерировал новый проект testprj вместе с ним.

Когда я выполняю ng test в каталоге My Projects/testprj/, все идет хорошо Сервер Karma v3.0.0 запущен, браузер Chrome запущен.

Однако, когда я выполняю ng test в каталоге My Projects/ng-dementor/, Angular CLI не дает мне ничего, кроме « Команда теста должна быть выполнена в проекте Angular, но определение проекта не найдено. »


ОБНОВЛЕНИЕ 2

Я обновил свой угловой CLI в соответствии с Angular Update Guide . Теперь моя среда разработки:

Angular CLI: 7.0.4
Node: 8.9.3
OS: win32 ia32
Angular: 5.2.11
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.10.4
@angular-devkit/build-angular     0.10.4
@angular-devkit/build-optimizer   0.10.4
@angular-devkit/build-webpack     0.10.4
@angular-devkit/core              7.0.4
@angular-devkit/schematics        7.0.4
@angular/cli                      7.0.4
@ngtools/webpack                  7.0.4
@schematics/angular               7.0.4
@schematics/update                0.10.4
rxjs                              5.5.12
typescript                        2.5.3
webpack                           4.19.1

1 Ответ

0 голосов
/ 03 ноября 2018

Этот ответ охватывает Angular 6, но похоже, что вы используете более старую версию Angular, поэтому это может работать не совсем так, как есть. Вы можете обновить до 6, как описано здесь:

https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4

Так или иначе в Angular 6 вы найдете эти записи в angular.json:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "MYPROJECT": {
      // more stuff
    }
  },
  // more stuff
  "defaultProject": "MYPROJECT"
}

Для проверки этого проекта вы можете запустить:

ng test

OR

ng test MYPROJECT

Если вы запустите это:

ng test --help

Он предоставит некоторые отзывы о том, как использовать команду для вашей конкретной версии Angular.

Также см. здесь , но это специфично для Angular 6.

См. Также Ошибка Angular Cli: команду serve требуется выполнить в проекте Angular, но определение проекта не найдено

Кроме того, ваши глобальные установки на travis такие же, как на локальном компьютере?

Если вам нужны глобальные пакеты, добавьте их в файл .travis.yml:

before_install:
- npm install -g your-package-name
...