【问题标题】:How to run one 'npm start' for two different folders in my project directory如何为我的项目目录中的两个不同文件夹运行一个“npm start”
【发布时间】:2019-09-23 22:29:37
【问题描述】:

我想运行一个npm start 命令来运行我的前端文件夹和后端文件夹。目前,我必须在每个文件夹内导航并分别在这两个文件夹上运行命令才能看到我的应用程序在 localhost 上打开。我已经“同时”查看了这个包,但是在我的 package.json 文件中实现它时遇到了一些麻烦。 这是我的前端文件夹的 package.json 文件:

"scripts": {
"start": "set HOST = 'http://localhost' && set PORT=8000 && react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"postbuild": "react-snap"

}

我曾尝试在前端运行 npm start 后使用此位来运行后端,但它不起作用:

"start": "set HOST = 'http://localhost' && set PORT=8000 && ../backend/ start & react-scripts start"

编辑: 重试后还是有些麻烦。

这是我的 package.json 文件中的脚本

前端文件夹

"scripts": {
"start": "set HOST = 'http://localhost' && set PORT=8000 && react-scripts start",
"build": "react-scripts build",
"test": "jest",
"eject": "react-scripts eject",
"postbuild": "react-snap"
},

后端文件夹

"scripts": {
"start": "node ./bin/www"
},

前端用 React 编写,后端用 Node.js 编写。任何帮助将不胜感激!

【问题讨论】:

  • 为什么不只为客户端和服务器使用 1 个 package.json?
  • 我该怎么做?将其移至前端/后端,还是将其移至项目目录之外?
  • 只有一个根目录,例如/project 包含你的 package.json 和 node_modules,它们对客户端和服务器都有任何依赖关系,以及 /project 中的 /client 和 /server 文件夹。
  • 我的客户端和服务器文件夹都有自己的 node_modules 和 package.json ...
  • 然后将您的依赖项合并到一个 package.json 中,该 package.json 可以在您的 package.json 文件中找到。然后在 /project 中新建一个npm i

标签: node.js reactjs npm react-scripts


【解决方案1】:

在您的 package.json 文件夹(后端)中,转到脚本

然后添加这个:

"start": "node index.js",
"client": "npm run start --prefix client",
"dev": "concurrently \"npm run start\" \"npm run client\"" 

(假设您的客户端文件夹包含前端服务器)

然后,如果您想同时运行两个服务器,只需键入 npm run dev 即可

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但现在已经解决了。假设服务器位于“后端”文件夹中,前端位于“客户端”文件夹中。

    那么服务器端 package.json 中的脚本应该是这样的:

    "scripts": {
        "client-install": "npm install --prefix client",
        "start": "node server.js",
        "server": "nodemon server.js",
        "client": "cd ../ && npm start --prefix client",
        "dev": "concurrently \"npm run server\" \"npm run client\""
      },
    

    而客户端的 package.json 是这样的:

    "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject"
      },
      "proxy": "http://localhost:5000",
    

    然后'npm run dev' 同时运行两个服务器

    【讨论】:

      【解决方案3】:

      “并发”包可以做到这一点

      npm i concurrently --save-dev
      

      然后设置npm run dev

      "dev": "concurrently --kill-others \"npm run start-watch\" \"npm run wp-server\""
      

      另一种选择是这样做(在 Windows CMD 中运行):

      "dev": "start npm run start-watch && start npm run wp-server"
      

      【讨论】:

        猜你喜欢
        • 2019-07-28
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        • 2018-04-15
        • 2011-12-17
        • 1970-01-01
        相关资源
        最近更新 更多