Angular TypeError中出错:无法读取属性';旗帜';执行ng serve时的未定义属性
在没有代码更改的情况下,尝试对新项目执行命令Angular TypeError中出错:无法读取属性';旗帜';执行ng serve时的未定义属性,angular,angular-cli,Angular,Angular Cli,在没有代码更改的情况下,尝试对新项目执行命令ng serve,出现错误: TypeError中出错:无法读取未定义的属性“flags” 这是ng--version命令输出: _ _ ____ _ ___ / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _| / △ \ | '_ \ / _` | | | | |/ _` | '__
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
编辑:
显示的完整错误为:
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)
编辑:
正如@cklimowski在回答中所建议的那样,我可以通过在项目中重新插入angular的9.1.4版来解决这个问题
我使用的命令:
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
尝试更新所有依赖项。对我来说,它可以工作,但我有不同的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
这是9.1.5中的一个问题。回滚或安装9.1.4,您会没事的 更新:
9.1.6目前正在运行,无此问题。升级到CLI和Core的最新版本。这些通常是最容易修复的错误。在代码中搜索“.flags” 试图访问未定义变量的.flags的某个位置。例如:user.flags。您可以通过添加一个简单的if语句来消除错误:
if(user) {
user.flags = 3 // or whatever
//code failing goes here
}
是否可以添加错误消息及其堆栈跟踪?为什么angular cli 9.1.4使用angular 9.1.5而不是9.1.4?不确定,似乎是9.1.5的问题。通常不会发生,请等待9.1.6。暂时将cli和core都保留在9.1.4上。如果这有效,请将我的回答标记为已接受!我使用最新稳定版本的nodejs(12.16.3)进行了测试,但在创建新项目时错误仍然存在。唯一有效的是@cklimowski的回答。我明白了,然后是真的,可能是windows上的一个问题,因为如何传递参数和标志的方式不同。我知道错误消息的意思。错误在angular 9.1.5本身或它的一些依赖项中,而不是在我的代码中。事实上,正如我在问题中所说,没有我的代码,这是一个使用angular cli 9.1.4创建的新项目。