ОШИБКА в TypeError: невозможно прочитать свойство 'flags' undefined при выполнении ng serve - PullRequest
1 голос
/ 08 мая 2020

При попытке выполнить команду ng serve в новом проекте без изменения кода произошла ошибка:

ОШИБКА в TypeError: невозможно прочитать свойство 'flags' неопределенного

это вывод команды ng --version:

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 9.1.4
Node: 14.2.0
OS: win32 x64

Angular: 9.1.5
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.901.4
@angular-devkit/build-angular     0.901.4
@angular-devkit/build-optimizer   0.901.4
@angular-devkit/build-webpack     0.901.4
@angular-devkit/core              9.1.4
@angular-devkit/schematics        9.1.4
@angular/cli                      9.1.4
@ngtools/webpack                  9.1.4
@schematics/angular               9.1.4
@schematics/update                0.901.4
rxjs                              6.5.5
typescript                        3.8.3
webpack                           4.42.0

EDIT: Полная отображаемая ошибка:

ERROR in TypeError: Cannot read property 'flags' of undefined
    at resolveAlias (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:36513:37)
    at checkAliasSymbol (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:64502:26)
    at checkImportBinding (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:64534:13)
    at checkImportDeclaration (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:64552:29)
    at checkSourceElementWorker (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:64961:28)
    at checkSourceElement (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:64800:17)
    at Object.forEach (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:317:30)
    at checkSourceFileWorker (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:65123:20)
    at checkSourceFile (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:65091:13)
    at getDiagnosticsWorker (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:65179:17)
    at Object.getDiagnostics (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:65165:24)
    at E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:98703:85
    at runWithCancellationToken (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:98665:24)
    at getBindAndCheckDiagnosticsForFileNoCache (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:98691:20)
    at getAndCacheDiagnostics (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:98956:26)
    at getBindAndCheckDiagnosticsForFile (E:\source\www\angular\test\node_modules\typescript\lib\typescript.js:98688:20)

EDIT: Я мог бы решить проблема с переустановкой версии 9.1.4 из angular внутри проекта, как предложил @cklimowski в своем ответе.

Команда, которую я использовал:

npm install @angular/core@9.1.4 @angular/animations@9.1.4 @angular/common@9.1.4 @angular/forms@9.1.4 @angular/platform-browser@9.1.4 @angular/router@9.1.4 @angular/platform-browser-dynamic@9.1.4 @angular/compiler@9.1.4 @angular/compiler-cli@9.1.4 @angular/language-service@9.1.4

Ответы [ 3 ]

1 голос
/ 08 мая 2020

Это проблема с 9.1.5. Откатитесь или установите 9.1.4, и все будет в порядке.

ОБНОВЛЕНИЕ:

9.1.6 теперь работает без этой проблемы. Обновите до последней версии как CLI, так и Core.

0 голосов
/ 08 мая 2020

это, как правило, самые простые ошибки. выполните поиск в коде ".flags"

в том месте, где вы пытаетесь получить доступ к .flags переменной, которая не определена. например: user.flags. вы можете устранить ошибку go, добавив простой оператор if:

if(user) {
    user.flags = 3 // or whatever
    //code failing goes here
}
0 голосов
/ 08 мая 2020

Попробуй обновить все зависимости. У меня работает, но у меня другая nodejs версия.

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 9.1.4
Node: 12.16.3
OS: darwin x64

Angular: 9.1.5
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.901.4
@angular-devkit/build-angular     0.901.4
@angular-devkit/build-optimizer   0.901.4
@angular-devkit/build-webpack     0.901.4
@angular-devkit/core              9.1.4
@angular-devkit/schematics        9.1.4
@angular/cdk                      9.2.2
@angular/cli                      9.1.4
@ngtools/webpack                  9.1.4
@schematics/angular               9.1.4
@schematics/update                0.901.4
rxjs                              6.5.5
typescript                        3.8.3
webpack                           4.42.0
...