1

我正在使用以下博客从头开始创建一个 Rails 应用程序,该博客需要我运行rails s,然后yarn start/client应用程序的文件夹中(所有 JS 和 React 组件都将存在)。

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

客户端/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;博士

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

4

2 回答 2

1

你可以写cmd参数Procfile

尝试将反应命令更改为

react: cd client && yarn start

它将更改当前目录并运行您的脚本

于 2019-07-22T17:47:00.900 回答
1

运行时会在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"
}
于 2019-07-22T19:59:30.413 回答