0

所以我试图将第三方 npm 模块“rss-parser”导入我的 Stenciljs 项目。我在官方文档中尝试过:


    let Parser = require('rss-parser');
    let parser = new Parser();

    (async () => {

      let feed = await parser.parseURL('https://www.reddit.com/.rss');
      console.log(feed.title);

      feed.items.forEach(item => {
        console.log(item.title + ':' + item.link)
      });

    })();

我得到了错误:Can't find variable: require

我想我以某种方式错过了如何安装这些库,但我不知道如何安装。我对 moudle bundlers 很感兴趣,但我认为 Stenciljs 编译器已经自带了。

我试图在 ES6 项目中导入旧的 JS 代码是否有问题?

谢谢你的帮助

4

2 回答 2

1

var Parser = require('rss-parser') 是一种 requireJS 语法,它不适用于模板。您需要使用以下方式之一导入它:

import Parser from 'rss-parser';

import { Parser } from 'rss-parser';

import 'rss-parser';

这完全取决于模块如何导出变量。

您可能需要在 stencil.config.ts 文件中做的另一件事是设置

nodeResolve: true
于 2019-01-19T04:19:23.543 回答
1

Stencil 组件是用 TypeScript 编写的,因此您可以使用它import来引入依赖项:

import Parser from 'rss-parser';

更多关于 TypeScript 模块的信息:https ://www.typescriptlang.org/docs/handbook/modules.html

于 2019-01-11T19:11:09.220 回答