【发布时间】:2018-08-13 13:26:54
【问题描述】:
我正在使用Angular 6 和scraperjs。
在我的组件文件中,使用了示例中给出的代码
import { Component, OnInit } from '@angular/core';
import scraperjs from 'scraperjs';
@Component({
selector: 'app-express',
templateUrl: './express.component.html',
styleUrls: ['./express.component.css']
})
export class ExpressComponent implements OnInit {
constructor() { }
ngOnInit() {
this.aliExpress();
}
aliExpress() {
console.log('loaded ali express');
scrapperjs.StaticScraper.create('https://news.ycombinator.com')
.scrape(function ($) {
return $('.title a').map(function () {
return $(this).text();
}).get();
}).then(function (news) {
console.log(news);
});
}
}
但它给出了错误
Failed to compile.
./node_modules/cheerio/index.js
Module not found: Error: Can't resolve './package' in '/home/user/code/angular/ali-express/node_modules/cheerio'
【问题讨论】:
-
您正尝试在运行时使用
require()加载模块。必须有一个配置的模块加载器,它知道从哪里加载文件。 WebPack 创建的默认require()只会映射到捆绑包中存在的模块。要么确保将它们添加到捆绑包中。配置不同的加载器(如 SystemJS)或使用import。 -
我在顶部使用了
import scraperjs from 'scraperjs';并删除了require,仍然是同样的错误。 -
您可以尝试手动安装cheerio。
npm install --save-dev cheerio -
我也试过了。还是一样的问题