当前位置: 首页 > 知识库问答 >
问题:

在angular CLI中获取生成错误:无法重新声明块作用域变量“ngDevMode”

太叔栋
2023-03-14

我得到奇怪的构建错误在我的角应用程序。有人能指出我做错了什么吗?我试图使用ADAL. js角包集成Azure AD身份验证。我使用adal-angular5为此。

cli命令:ng serve

节点模块/@angular/core/src/render3/ng_dev_模式中出错。d、 ts(9,11):错误TS2451:无法重新声明块作用域变量“ngDevMode”。node_modules/adal-angular5/node_modules/@angular/core/src/render3/ng_dev_mode。d、 ts(9,11):错误TS2451:无法重新声明块作用域变量“ngDevMode”。

ng build--prod一起使用时

@angular\common\http\http中出错。ts(62,2):decorators中不支持“HttpClient”函数调用的模板编译过程中出错,但在“可注射”“可注射”调用“ɵmakeDecorator”中调用了“ɵmakeDecorator”。node_modules/@angular/core/src/render3/ng_dev_mode。d、 ts(9,11):错误TS2451:无法重新声明块作用域变量“ngDevMode”。node_modules/adal-angular5/node_modules/@angular/core/src/render3/ng_dev_mode。d、 ts(9,11):错误TS2451:无法重新声明块作用域变量“ngDevMode”。

这里是我的角度版本的细节

Angular CLI: 6.1.4
Node: 8.11.4
OS: win32 x64
Angular: 6.1.3
Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.7.4
@angular-devkit/build-angular     0.7.4
@angular-devkit/build-optimizer   0.7.4
@angular-devkit/build-webpack     0.7.4
@angular-devkit/core              0.7.4
@angular-devkit/schematics        0.7.4
@angular/cli                      6.1.4
@ngtools/webpack                  6.1.4
@schematics/angular               0.7.4
@schematics/update                0.7.4
rxjs                              6.2.2
typescript                        2.9.2
webpack                           4.9.2

我的应用程序。蜕皮。ts供参考:

import { AuthService } from './services/auth.service';
import { AuthGuardService } from './services/auth-gurad.service';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { ProtectedComponent } from './protected/protected.component';
import { AuthCallbackComponent } from './auth-callback/auth- 
callback.component';
import { Adal5Service, Adal5HTTPService } from 'adal-angular5';
import { HttpClient } from '@angular/common/http';
const routes: Routes = [
{
   path:'',
   children: []
},
{
   path:'protected',
   component:ProtectedComponent,
   canActivate: [AuthGuardService]
},
{
   path:'auth-callback',
   component:AuthCallbackComponent
}
];

@NgModule({
declarations: [
  AppComponent,
  ProtectedComponent,
  AuthCallbackComponent
 ],
 imports: [
    BrowserModule,
    RouterModule.forRoot(routes)
 ],
 exports: [RouterModule],
 providers: [AuthGuardService, AuthService, Adal5Service,{ 
 provide:Adal5HTTPService, useFactory:Adal5HTTPService.factory, deps: 
 [HttpClient, Adal5Service] } ],
 bootstrap: [AppComponent]
 })

 export class AppModule { }

这是我的tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
  "baseUrl": "./",
  "outDir": "./dist/out-tsc",
  "sourceMap": true,
  "declaration": false,
  "module": "es2015",
  "moduleResolution": "node",
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  "target": "es5",
  "typeRoots": [
     "node_modules/@types"
  ],
  "lib": [
  "es2017",
  "dom"
   ]
  }
 }

如果需要更多的参考资料,请告诉我。


共有1个答案

戚翰飞
2023-03-14

看起来您正试图将Angular 6用于您的项目,但是adal-angular5依赖于Angular 5。因此,Angular 5和Angular 6都已安装,它们的类型定义是冲突的;您在运行时也可能遇到问题。要么将您的项目切换到Angular 5,要么尝试adal-angular4,它应该支持Angular 4和更新版本。

 类似资料:
  • 我有1个文件,对它添加了一个测试文件: test06.ts 当我在test06.spec.ts中引用此函数的时候报错:

  • 问题内容: 如何在简短的变量声明中从其他块中重新声明变量? 关于此问题有很长的话题,但现在我很感兴趣如何解决此问题。 问题答案: 简短的变量声明的Go规范很明确: 短变量声明可以重新声明变量,只要它们最初是在同一块中以相同类型声明的,并且至少一个非空变量是新变量。 因此,在简短的变量声明中,您无法重新声明最初在其他块中声明的变量。 这是一个如何通过在内部块中声明局部变量()并将其()分配给在外部块

  • 问题内容: 我有一个函数(从文件顶部开始,这就是它的外观): 由于某种原因,我不断收到错误消息: 致命错误:无法在/Applications/MAMP/htdocs/question- air/includes/functions.php中重新声明generate_salt()(先前在/Applications/MAMP/htdocs/question- air/includes/function

  • 致命错误:无法在第9行的E:\wamp1\wamp\www\sample.php中重新声明关闭()(先前在E:\wamp1\wamp\www\sample.php: 1中声明) 当我运行这个脚本时,它说不能在第9行中重新声明近()(以前在第1行中被标记)。 即使出现错误,与和相关的值也会传递给css。我在这里做错了什么?我正在调用第9行中的函数。有什么帮助吗?

  • 问题内容: 当我在node.js中键入时,我得到了。 如果没有关键字,则通过(=> 15)。它可以在Chrome控制台中运行(带有和不带有关键字)。 问题答案: 使用时它在Node中不起作用,因为它是 当前模块 的 本地变量 。您应该直接引用它:。 不输入时,发生的事情现在 是整个Node进程中的全局变量 。 在Chrome浏览器(或其他任何浏览器中-我不确定oldIE …),无论您是否在示例中使

  • 问题内容: Java编译器如何处理以下开关块?“ b”变量的范围是什么? 注意,“ b”变量仅在switch语句的第一个分支中声明。尝试在第二个分支中声明它也会导致“重复的局部变量”编译错误。 注意:以上代码使用Java 1.6编译器进行编译。 问题答案: 与通常一样,范围由和分隔。