【问题标题】:Use puppeteer with webpack将 puppeteer 与 webpack 一起使用
【发布时间】:2021-01-10 12:02:13
【问题描述】:

如何在 webpack 中使用 puppeteer?无论我尝试什么,它都找不到它。据我所知,这是:

依赖安装在package.json中:

npm i puppeteer

在 webpack.dev 中:

module.exports = {
    // ... I'm skipping over a bunch of stuff here, then:
    externals: {
        puppeteer: require('puppeteer'),
    }
}\\

然后在我客户端的入口文件index.js中:

import puppeteer from 'puppeteer';

在我跑步之后:

puppeteer.launch();

只得到这个错误:

Uncaught TypeError: Cannot read property 'launch' of undefined

我做错了什么?我一直在努力在 webpack 中使用外部插件。

快速更新,我尝试了 webpack.providePlugin 并与 jquery 库并行测试。 jquery 遵循相同的逻辑工作,但 puppeteer 仍然给我一个错误:

在 webpack.dev 中:

    plugins: [
    new webpack.ProvidePlugin({
        puppeteer: 'puppeteer',
        jQuery: 'jquery'
    })

在 index.js 中:

import 'puppeteer'
import 'jquery'

然后我得到一堆错误,例如:

/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js
Module not found: Error: Can't resolve 'child_process' in 'C:\Users\victo\OneDrive\Desktop\20200307-kino\kino\node_modules\puppeteer\lib\cjs\puppeteer\node'
errors @ client:159
eval @ socket.js:47
sock.onmessage @ SockJSClient.js:67
EventTarget.dispatchEvent @ sockjs.js:170
eval @ sockjs.js:888
SockJS._transportMessage @ sockjs.js:886
EventEmitter.emit @ sockjs.js:86
WebSocketTransport.ws.onmessage @ sockjs.js:2962
client:159 ./node_modules/extract-zip/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\Users\victo\OneDrive\Desktop\20200307-kino\kino\node_modules\extract-zip'

【问题讨论】:

标签: javascript node.js npm webpack puppeteer


【解决方案1】:

如下添加到您的配置中。这对我来说很有效。注释掉的也可能适用

module.exports = {
// ... 
node: {
  child_process: 'empty',
  // net: 'empty',
  // dns: 'empty',
  // tls: 'empty',
  // readline: 'empty'
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-22
    • 2021-12-10
    • 2021-12-05
    • 2017-12-09
    • 2020-10-05
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多