标签: angular9

错误:试图用 ngcc 备份文件覆盖 <package_path>.__ivy_ngcc_bak,这是不允许的

我已从 Angular 8 升级到 9,并按照此处的所有步骤启用了 Ivy 。当我运行npm install一些我的包时抛出错误:

Tried to overwrite <package_path>.__ivy_ngcc_bak with an ngcc back up file, which is disallowed.

这是什么意思,为什么会这样?我很难找到有关它的任何信息。我已经为所有这些抛出此错误的软件包安装了最新版本,但在运行npm install. 谢谢!

npm angular angular-ivy angular9

11
推荐指数
1
解决办法
2721
查看次数

Angular Material Menu 模块:未找到名称“matMenu”的导出

我对 Angular Material Menu 模块有一个小问题。

我的app.module.ts 中有此代码:

import { SharedModule } from './shared/shared.module';

@NgModule({
  declarations: [
    // ...
  ],
  imports: [
    SharedModule,
  ],
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

在我的shared.module.ts 中

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MatMenuModule } from '@angular/material/menu';
import { ListDropdownComponent } from './list-dropdown/list-dropdown.component';

@NgModule({
  declarations: [
    ListDropdownComponent,
  ],
  imports: [
    MatMenuModule,
  ],
  exports: [
    ListDropdownComponent,
  ],
})
export class SharedModule { }
Run Code Online (Sandbox Code Playgroud)

在我的list-dropdown.component.ts …

typescript angular-material angular angular9

11
推荐指数
2
解决办法
1万
查看次数

从 Angular 8 迁移后的 Angular 9 编译错误

我将我的 angular 应用程序从版本 8 迁移到 9。运行 ng serve --open 后,我的应用程序在浏览器中打开并卡在加载屏幕上,控制台窗口中出现此错误:

`

core.js:610 Uncaught Error: Angular JIT compilation failed: '@angular/compiler' not loaded!
  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.
  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?
  - Alternatively provide the compiler with 'import "@angular/compiler";' before bootstrapping.
    at getCompilerFacade (core.js:610)
    at Function.get (core.js:38351)
    at getNgModuleDef (core.js:2195)
    at assertNgModuleType (core.js:2933)
    at compileNgModuleFactory__POST_R3__ (core.js:41373)
    at PlatformRef.bootstrapModule (core.js:41740)
    at Module../src/main.ts (main.ts:11)
    at __webpack_require__ (bootstrap:79)
    at Object.0 (main.ts:13)
    at __webpack_require__ …
Run Code Online (Sandbox Code Playgroud)

angular angular9

10
推荐指数
1
解决办法
5104
查看次数

Angular 9 TestBed.inject 和提供者覆盖

由于 TestBed.get 在 Angular 9 中已被弃用,因此当使用提供程序覆盖时,以下替代方案是什么

TestBed.configureTestingModule({
  providers: [{ provide: MyClass, useClass: MyStub}]
});

const obj : MyStub = TestBed.get(MyClass);
Run Code Online (Sandbox Code Playgroud)

真的是这样还​​是有更好的方法?

const obj : MyStub = TestBed.inject(MyClass) as unknown as MyStub;
Run Code Online (Sandbox Code Playgroud)

angular angular-unit-test angular-test angular9

10
推荐指数
1
解决办法
3295
查看次数

10
推荐指数
3
解决办法
1万
查看次数

无法在 Angular 9 中使用 Ng-bootstrap

我使用 ng-bootstrap 以 angular 开始了我的第一个项目,并按照安装过程进行了操作,但是它不起作用。

该消息是“未捕获的错误:您的应用程序或其依赖项之一似乎正在使用i18n.

Angular 9 引入了一个$localize()需要加载的全局函数。请添加import '@angular/localize';到您的 polyfills.ts 文件中。”

然后我在 polyfill.ts 中添加了这一行

import '@angular/localize';
Run Code Online (Sandbox Code Playgroud)

现在消息变成了

未找到 ./src/polyfills.ts 模块中的错误:错误:无法解析“D:\source\mh\Reclamos-v2\src”中的“@angular/localize”

我应该安装什么?本地化库的名称是什么?

ng-bootstrap angular angular9

9
推荐指数
2
解决办法
5461
查看次数

Angular 9 SSR - 在哪里设置 global['window'](使用多米诺骨牌)?

升级到 Angular 9 后,我ReferenceError: window is not defined在运行yarn serve:ssr.

在我们的 Angular 应用程序中,我们使用 Domino 的技巧来模拟 SSR 的窗口(如在https://github.com/Angular-RU/angular-universal-starter/blob/master/server.ts#L21 中)。

因此,ng update在导入后添加这些行之后server.ts


const distFolder = join(process.cwd(), 'dist/browser');
const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';

// Emulate browser APIs
const domino = require('domino');
const fs = require('fs');
const templateA = fs.readFileSync(join(distFolder, indexHtml)).toString();

const win = domino.createWindow(templateA);
win.Object = Object;
win.Math = Math;
global['window'] = win;
global['document'] = win.document;
Run Code Online (Sandbox Code Playgroud)

然而,设置似乎global['window']发生得太晚或永远不会发生。

您知道在哪里设置 …

angular angular9

9
推荐指数
1
解决办法
2139
查看次数

将主项目中的服务注入到创建的库中

我使用 Angular 8。

这个问题仅适用于 Angular DI 专家。

首先,我制作了一个 Angular 库,将在许多项目中重用。

在这个库中,我创建了一个抽象服务,必须在使用它的项目中定义该服务。

我在我的库中定义了一个名为 BridgeService 的抽象类

在我的主项目中,我创建了 BridgeService 来实现它:(在接下来的几行中,我将向您展示抽象的 BridgeService)

主要项目 > BridgeService :

import { BridgeService as AbstractBridgeService } from 'myLibrary';

@Injectable()
export class BridgeService implements AbstractBridgeService {

    hello(){
        alert('hello Word');
    }
}
Run Code Online (Sandbox Code Playgroud)

主项目>用户模块:

import { UsersModule as LibraryUsersModule } from 'myLibrary';

@NgModule({
    imports: [
        CommonModule,
        LibraryUsersModule,
    ],
    //...
    providers: [
        BridgeService
        // some try:
        //{ provide: BridgeService, useClass: BridgeService }
    ],
})
export class UsersModule {

    constructor(private bridgeService: BridgeService){
        this.bridgeService.hello(); …
Run Code Online (Sandbox Code Playgroud)

angular angular-dependency-injection angular7 angular8 angular9

9
推荐指数
1
解决办法
2320
查看次数

ngmodule 不是子类型 ngmoduletype

我使用 angular 9 并且我想做延迟加载 app-routing

{
    path: '', loadChildren: () => import("./components/login/login.module")//.then(m =>
     // m.LoginModule)
  }
Run Code Online (Sandbox Code Playgroud)

在我创建登录模块之后:

@NgModule({
    declarations: [LoginComponent],
    imports: [
        CommonModule,
        FormsModule,
        LoginModuleRouting

    ],
    providers:[]
})
export class LoginModule { }
Run Code Online (Sandbox Code Playgroud)

和路由:

const routes: Routes = [
  {
    path: '', component: LoginComponent,

  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})


export class LoginModuleRouting { }
Run Code Online (Sandbox Code Playgroud)

问题是,当我打电话ng serve并继续访问 ` http://localhost:4200/ 时,我得到了这个异常:

core.js:6237

 ERROR Error: Uncaught (in promise): Error: ASSERTION ERROR: NgModule '[object Module]' is not a …
Run Code Online (Sandbox Code Playgroud)

angular-routing angular-module angular angular9

9
推荐指数
3
解决办法
7071
查看次数

类型错误:无法读取未定义的属性“tapPromise”

我在 Angular 9 项目中使用 Angular Build Optimization 并使用以下代码生成包,但出现错误。我用错误谷歌搜索,但没有找到任何具体的答案。

由于错误表明问题仅在库本身中。我也做了 npm install 和 npm audit fix ,但一次又一次地得到同样的错误。

错误详情

An error occurred during the build:
TypeError: Cannot read property 'tapPromise' of undefined
    at compiler.hooks.compilation.tap.compilation (E:\Code\blogui\BlogApp\node_modules\compression-webpack-plugin\dist\index.js:269:39)
    at SyncHook.eval [as call] (eval at create (E:\Code\blogui\BlogApp\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:25:1)
    at SyncHook.lazyCompileHook (E:\Code\blogui\BlogApp\node_modules\tapable\lib\Hook.js:154:20)
    at Compiler.newCompilation (E:\Code\blogui\BlogApp\node_modules\@angular-builders\custom-webpack\node_modules\webpack\lib\Compiler.js:631:26)
    at hooks.beforeCompile.callAsync.err (E:\Code\blogui\BlogApp\node_modules\@angular-builders\custom-webpack\node_modules\webpack\lib\Compiler.js:667:29)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\Code\blogui\BlogApp\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (E:\Code\blogui\BlogApp\node_modules\tapable\lib\Hook.js:154:20)
    at Compiler.compile (E:\Code\blogui\BlogApp\node_modules\@angular-builders\custom-webpack\node_modules\webpack\lib\Compiler.js:662:28)
    at readRecords.err (E:\Code\blogui\BlogApp\node_modules\@angular-builders\custom-webpack\node_modules\webpack\lib\Compiler.js:321:11)

Run Code Online (Sandbox Code Playgroud)

angular.json 文件

 "build": {
                    "builder": "@angular-builders/custom-webpack:browser",
                    "options": {
                        "outputPath": "dist/BlogApp",
                        "index": …
Run Code Online (Sandbox Code Playgroud)

compression webpack angular9

9
推荐指数
1
解决办法
1万
查看次数