在相同的设置下运行Puppeteer可以正常运行,直到在ubuntu VPS上部署时出现以下错误:
internal/util.js:209
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'original', 'function');
^
TypeError [ERR_INVALID_ARG_TYPE]: The "original" argument must be of type function
at promisify (internal/util.js:209:11)
at Object.<anonymous> (/var/www/html/path/node_modules/extract-zip/index.js:11:18)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/www/html/path/node_modules/puppeteer/lib/BrowserFetcher.js:25:17)
这是我的源代码:
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
browser.close();
})();
请帮助。我想念什么。为什么在ubuntu 16 VPS上出现错误,但是在我的Mac上一切正常。
答案 0 :(得分:1)
在Ubuntu 18.04.4上更新Node.js后,错误消息消失了。
答案 1 :(得分:0)
有点相关。对于单个软件包,我在许多不同的Node.js版本中都有相同的错误:
internal/util.js:220
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'original', 'Function');
更新Node.js版本没有帮助。
[解决方案]
这很容易解决。 package.json 中引用的某些依赖项可能引用 32bit 软件包。如果您运行的是 64位 Node.js版本,则在尝试“ npm运行/启动”,“ npm测试”或“ npm安装”软件包时会出现上述错误。
只需切换到项目支持的受支持的32位Node.js版本。