我正在构建一个供内部使用的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));
})();
我收到error
,ReferenceError: require is not defined
,因为我在MyModule
中使用了require。
我是否可以在木偶操作员中使用这样的JS模块,如果是的话,获取MyModule
的实例并使用它的正确方法是什么?
答案 0 :(得分:2)
我真的怀疑puppeteer可以实现这一点,因为它只是无头镀铬的nodejs驱动程序。
如果您需要在内部使用带有cmd require(...)
的自定义模块,则可能需要使用webpack
之类的模块捆绑器来生成包含所有依赖项的捆绑文件,然后inject
进入木偶戏页面。
只需2美分。