【问题标题】:Rails/React/Yarn: How can I run "yarn start" from the root of my applicationRails/React/Yarn:如何从应用程序的根目录运行“yarn start”
【发布时间】:2019-07-22 17:31:14
【问题描述】:

我正在使用以下 blog 从头开始​​创建一个 Rails 应用程序,这需要我在应用程序的 /client 文件夹中运行 rails syarn start(所有 JS 和 React 组件都将在其中运行) )。

/client/package.json 文件有一些脚本配置为运行服务器,该服务器检测我的 react 组件中的更改并自动重新加载组件:

client/package.json:

{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-scripts": "3.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "proxy": "http://localhost:3001"
}

我使用一个名为hivemind 的程序,它是一个Procfile 管理器,我希望rails 服务器进程和yarn 进程在同一个终端中一起运行。

我想在我的Profile 中做这样的事情:

server: bin/rails server
react:  yarn start

问题是Profile 位于我的应用程序的根目录中,我必须将目录更改为client,然后运行yarn start

TL;DR

yarn run 是否有一个选项,您可以告诉它从另一个文件夹运行或读取另一个文件夹中的 package.json 文件并让它运行该文件中的脚本?

【问题讨论】:

  • 你可以在 Procfile 中试试cd client && yarn start
  • 我没有想到这一点。这样可行。如果你想发帖,我会给你+1,如果接下来一两天没有更好的结果,我会给你和代表正确答案。
  • 很高兴它有帮助..!我会发一个帖子,以便其他人可以轻松找到解决方案..!谢谢

标签: ruby-on-rails reactjs yarnpkg hivemind


【解决方案1】:

您可以在Procfile 中写入cmd 参数

尝试将 react 命令更改为

react: cd client && yarn start

它会改变当前目录并运行你的脚本

【讨论】:

    【解决方案2】:

    当您运行 yarn [command] yarn 时,会在本地查找名为 package.json 的文件。您可以在此文件的 "scripts" 部分中添加纱线命令。在我自己的 Rails 应用程序根目录中,我添加了一个 "start" 命令,它完成了 Sumanth 的回答,但现在我可以拥有

    react: yarn start
    

    在我的Procfile

    以下是我的应用根路径中package.json 文件的编辑版本:

    {
      "name": "create-repack-app",
      "version": "1.0.0",
      "scripts": {
        "build": "cd client && npm install --only=dev && npm install && npm run build && cd ..",
        "deploy": "cp -a client/build/. public/",
        "heroku-postbuild": "npm run build && npm run deploy && echo 'Client Built'",
        "start": "cd client && yarn start"
      },
      "keywords": [],
      "author": "",
      "license": "ISC"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2019-03-25
      • 1970-01-01
      相关资源
      最近更新 更多