node.js - Hur man simulerar Heroku react-app bygget lokalt?


Jag har en Rails/React-applikation som jag försöker distribuera till Heroku. Jag får fel när jag försöker bygga React-appen eftersom den letar efter @types/* som finns i mina devDependencies men inte borde göra det. Jag kan åtgärda detta genom att flytta dem till dependencies-avsnittet i min package.json-fil, men jag undrar varför jag inte får dessa fel när jag kör yarn build eller yarn heroku-postbuild lokalt. Jag föreställer mig att jag kanske har en inställning någonstans lokalt som jag inte har på Heroku, där jag bygger en utvecklarversion eller något som inte fångar dessa fel.

Hur kan jag simulera React-byggnaden på Heroku lokalt så att jag inte blir överraskad av dessa fel när jag försöker distribuera?

Här är de relevanta delarna av min /package.json-fil:

"engines": {
  "yarn": "1.22.5",
  "npm": "6.14.4",
  "node": "10.19.0"
},
"scripts": {
  "build": "cd client && yarn install && yarn build && cd ..",
  "deploy": "cp -a client/build/. public/",
  "heroku-postbuild": "yarn build && yarn deploy && echo 'Client Built'"
},

Här är de relevanta(?) delarna av min /client/package.json-fil:

{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:3001",
  "dependencies": {
    ...
  },
  "scripts": {
    "start": "node server.js",
    "dev-start": "react-scripts start",
    "build": "GENERATE_SOURCEMAP=false react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "gen": "graphql-codegen --config codegen.yml"
  },
  "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"
    ]
  },
  "devDependencies": {
    ...
  }
}