Javascript Can';t在react应用程序中运行木偶演员,未找到模块:Can';t解决';ws';编译时

Javascript Can';t在react应用程序中运行木偶演员,未找到模块:Can';t解决';ws';编译时,javascript,reactjs,puppeteer,Javascript,Reactjs,Puppeteer,我想知道是否可以在我的react应用程序中运行Puppeter。每当我尝试在我的react应用程序中运行Puppeter时,我都会得到“未找到模块:无法解析'ws'”。我已尝试安装ws,但仍然会出现相同的错误。简单回答:您不能在react应用程序中运行Puppeter React是一个客户端框架。这意味着它在浏览器中运行 虽然Puppeter是一个NodeJS库,但它需要Node.js并在服务器端运行 Puppeter是一个节点库,它提供了一个高级API来通过DevTools协议控制Chrome

我想知道是否可以在我的react应用程序中运行Puppeter。每当我尝试在我的react应用程序中运行Puppeter时,我都会得到“未找到模块:无法解析'ws'”。我已尝试安装ws,但仍然会出现相同的错误。

简单回答:您不能在react应用程序中运行Puppeter

React是一个客户端框架。这意味着它在浏览器中运行

虽然Puppeter是一个NodeJS库,但它需要Node.js并在服务器端运行

Puppeter是一个节点库,它提供了一个高级API来通过DevTools协议控制Chrome或Chrome。Puppeter默认情况下运行headless,但可以配置为运行full(非headless)Chrome或Chrome


对上述答案进行扩展。您不能在react应用程序上直接运行Puppeter。React应用程序是一个前端框架,您需要Puppeter在节点js服务器上运行。这是一个简单的“修复”,我想比上面的答案解释得多一点

让他们合作的步骤是

  • 安装express服务器。您可以这样创建express服务器: 单独的目录
    reactServer
    Npm init
    目录和
    Npm i express
  • 在express服务器中,您可以分配一个路径

    const express = require('express')
    const app = express()
    const port = 5000
    
    app.get('/', (req, res) => {
      res.send('Hello World!')
    })
    
    app.get('/my-react-path', (req, res) => {
      // run any scripts you need here
    })
    
    app.listen(port, () => {
      console.log(`Example app listening at http://localhost:${port}`)
    })
    
    然后,您的react应用程序将与服务器交互,如下所示:

    localhost:5000/my-react-path
    

    my react path
    中,您可以创建一个函数,该函数可以启动Puppeter并在服务器端执行所有您想要的操作,并且它可以返回任何要进行响应的结果。上面的示例只是让您开始,它与Puppeter没有任何关系。

    根本没有办法在react中运行Puppeter吗?@tsl001没有办法。木偶表演者使用全铬合金。为什么你需要在另一个Chrome中运行一个Chrome?这是我的程序,它通过UI自动从商店中签出项目。如果你实际需要操作DOM,你可以搜索其他库。或者在本地服务器上运行您的傀儡机,然后将数据提供给您的react应用程序