首页 文章

如何连接webpack dev服务器来表达?

提问于
浏览
0

我在package.json proxy: 'http://localhost:5000 中的'm running BOTH an express and create-react-app app. They are seperate entities during development and express is just an endpoint which we communicate through ' proxy'字段 . 在 生产环境 过程中,我运行 yarn build 并通过Express中的catch-all-route在build文件夹中提供静态index.html .

// RENDER REACT STATIC INDEX.HTML FROM BUILD
if(process.env.NODE_ENV === 'production') {
  app.get('/*', (req, res) => {
    res.sendFile(path.join(__dirname, '../client/build', 'index.html'))
  })
}

好的, 生产环境 和开发过程中存在巨大差异 . 例如,如果我在 production 期间导航到/ pages / plainhtmlfile,我可以在路由匹配时提供.EJS文件 . 因为在 生产环境 期间只有Express运行,它提供静态文件,包括React构建文件夹index.html .

//THIS WORKS DURING PRODUCTION, NOT WORKING DURING DEVELOPMENT.
app.get('/plainhtmlfile', (req, res) => {
  res.render('nonreactpage')
})

如何在可以服务'/ plainthtmlfile'的地方进行开发?现在create-react-app是一个在端口3000上运行的独立进程,在开发期间表示端口5000 .

1 回答

  • 0

    使用webpack-dev-server代理 . 它适用于开发环境,将URL重定向到您指向的服务器 .

    例如,您的配置应如下所示,因为快速服务器位于端口5000中

    proxy: {
      "/plainhtmlfile": "http://localhost:5000"
    }
    

    密钥可以包含通配符,因此,这个密钥将重定向以/ api /开头的所有URL

    proxy: {
      "/api/**": "http://localhost:5000"
    }
    

    https://webpack.js.org/configuration/dev-server/#devserver-proxy

相关问题