将 Cheerio.js 添加到 Angular 6 项目?

Adding Cheerio.js to an Angular 6 project?

我创建了一个全新的 Angular6 项目并安装了 Cheerio.js:

npm install cheerio

安装 Cheerio.js 后,我认为将它添加到我的项目中所要做的就是导入它并将其添加到 NgModule 导入中:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import * as cheerio from 'cheerio';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    cheerio
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

但是,在执行此操作后,我遇到了 TypeScript 错误,类似于 "Could not find a declaration file for module 'cheerio'."

我是不是走错了路?我只需要能够在 Angular 应用程序中解析一些 HTML 并阅读 Cheerio.js 是可行的方法。

你还需要安装 cheerio types npm install --save @types/cheerio

不要在 NgModuleimports 内添加 cheerio,基本上 imports 数组采用 Angular 应用程序模块名称,在您想要的位置在 angular 应用程序中使用第三方库。

基本上您应该在 angular.json 文件 scripts 选项中添加 cheerio 文件引用。这将确保 cheerio 插件加载到您的捆绑文件中。现在可以使用了。

"scripts": [
  ...,
  "node_modules/cheerio/lib/cheerio.js"
]

然后在 Angular 代码中使用 cheerio 插件函数。但是你还应该安装 cheerio typings,这样 typescript 就不会抱怨它了。

npm i -D @types/cheerio