在puppeteer

时间:2017-10-04 13:03:47

标签: javascript node.js npm module puppeteer

我正在构建一个供内部使用的npm包。其中一个功能是DOM解析,所以我需要在浏览器中加载它。我想用木偶操作进行测试。

在文档中,我发现page.injectFile()用于本地JS文件。但是,我的文件是一个模块(我正在注入的文件已经被转换为常规JavaScript),并且在将它注入木偶操作者的浏览器页面后我不知道该怎么做。

到目前为止我的代码:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  page.injectFile('../build/MyModule')
    .then(result => console.log(result))
    .then(error => console.log(error));
})();

我收到errorReferenceError: require is not defined,因为我在MyModule中使用了require。 我是否可以在木偶操作员中使用这样的JS模块,如果是的话,获取MyModule的实例并使用它的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

我真的怀疑puppeteer可以实现这一点,因为它只是无头镀铬的nodejs驱动程序。

如果您需要在内部使用带有cmd require(...)的自定义模块,则可能需要使用webpack之类的模块捆绑器来生成包含所有依赖项的捆绑文件,然后inject进入木偶戏页面。

只需2美分。