【问题标题】:React-js project Deployment failed. "serve" is not recognized as an internal or external commandReact-js 项目部署失败。 “服务”未被识别为内部或外部命令
【发布时间】:2019-04-23 16:49:28
【问题描述】:

在 windows 服务器上部署 React-js 应用程序时面临的问题

  • 我通过 npm install -g serve 命令全局安装了 serve
  • serve -s build 未运行
  • “服务”未被识别为内部或外部命令

我已经成功构建了 react 应用程序。 我有点困惑构建后要做什么。 服务不工作。 还请回答如何处理 react 项目中的 server.js 文件以及它如何帮助部署

我的应用程序在本地运行正常。我也希望它在我的域上运行。

npm serve is installed globally please click here to see the image

【问题讨论】:

    标签: reactjs deployment external internals serve


    【解决方案1】:

    我知道运行npx serve -s build 应该可以。我和你有同样的问题。 npx 命令对我有用。如果你有 npx 问题,请检查你的 nodejs 版本。我正在运行 10.16.2(以便我们在同一页面上)。 https://www.npmjs.com/package/serve

    您的问题的其余部分与您设置的其余部分有关。我没有自己的 server.js 文件(有一些 node_module server.js 文件,是这个意思吗)?

    据我了解,一个 create-react-app,npm run start 将允许您在本地运行您的应用程序。我不需要serve -s build

    我使用了一个放大创建反应应用程序。对于放大应用程序,我只需运行 amplify publish 并将我的应用程序的构建目录发送到我的 S3 存储桶。如果您没有该配置,并且想要快速而肮脏的答案......只需在您的反应应用程序中获取构建目录的内容并将这些文件拖放到您的 Web 服务器上。这应该可以让你到达那里的 90%(注意呈现的默认页面)。

    【讨论】:

    • 为什么每次运行npx serve -s build命令时都会安装npx?
    • 对我来说也适用于 npx,可能是因为应用程序是使用 npx 命令创建的
    【解决方案2】:

    提供 React 文件

    基本示例:-

    const express = require('express');
    const path = require('path');
    const app = express();
    
    app.use(express.static(path.join(__dirname, 'build')));
    
    app.get('/', function(req, res) {
      res.sendFile(path.join(__dirname, 'build', 'index.html'));
    });
    
    app.listen(9000);
    

    为您在域中的基本路径提供您从构建过程中获取的 index.html。

    如果您需要更多信息:- https://create-react-app.dev/docs/deployment

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 2018-10-26
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2021-06-23
      • 2013-10-06
      相关资源
      最近更新 更多