首页 > 解决方案 > Cheerio 不是服务器上与本地具有相同 node.js 版本的功能

问题描述

我有一个使用 Cheerio 的刮刀。

var cheerio = require('cheerio');
$ = cheerio.load(s, { decodeEntities: true });
var sel = $('.text');
cheerio(sel).find(selector)

当我在本地调用它时,它工作正常。当我在具有 Cent OS 但具有相同节点版本(12.18.3)的服务器上调用它时,我在本地使用,我得到cheerio is not a function错误。我清除了本地和远程的 node_modules 文件夹并进行了更改,npm install但没有更改。还有什么可能导致这种奇怪的行为?

标签: javascriptnode.jscheerio

解决方案


我发现有时require('packageName').default需要导出。所以我试了一下,可以在遥控器上修复它,但在本地require('cheerio').default不起作用。现在它使用以下解决方案在本地和服务器上工作:

var cheerio = require('cheerio');
if (typeof (cheerio) != 'function') cheerio = require('cheerio').default;

我只是不知道为什么在具有相同 node.js 版本的两台机器上它会有所不同。


推荐阅读