dnm*_*nmh 6 javascript module node.js npm puppeteer
我正在构建一个供内部使用的 npm 包。它的功能之一是 DOM 解析,所以我需要在浏览器中加载它。我想使用 puppeteer 进行测试。
在文档中,我发现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));
})();
Run Code Online (Sandbox Code Playgroud)
我得到一个error
,ReferenceError: require is not defined
因为我在MyModule
. 我什至可以在 puppeteer 中使用这样的 JS 模块MyModule
吗?如果是,那么获取和使用它的实例的正确方法是什么?
我真的怀疑 puppeteer 能否实现这一目标,因为它只是无头 Chrome 的 Nodejs 驱动程序。
如果您需要在内部使用 cmd 自定义模块require(...)
,您可能需要使用模块捆绑器,例如webpack
生成包含所有依赖项的捆绑文件,然后inject
进入 puppeteer 页面。
只是我的2分钱。