web-dev-qa-db-ja.com

反応のためにpackage.jsonからNODE_ENVを設定する方法

反応アプリの実行中にローカルから複数の環境をターゲットにしようとしています。

1. Development
2. Staging
3. Production

また、どの環境でもオフラインモードをテストしようとしています。したがって、私が構成したスクリプトは次のとおりです。

    "staging-server": "nodemon server.js --environment=staging",
    "staging": "concurrently -k  \"npm:staging-server\" \"NODE_ENV='staging' PORT=3003 react-scripts start\"",
    "prod": "npm run build && forever server.js --environment=production"

私はExpress内でargsを使用して環境argをフェッチできますが、ローカルuiアプリはまだ、process.env.NODE_ENVをコンソールしているときにのみ開発を示しています。また、ステージング用に同じ行でNODE_ENVを設定しようとしていますが、まだうまくいきません。 PORT設定は機能していますが、アプリは3000と3003の両方のポートで実行されています。これを回避し、ステージング構成を理解するのに役立つ方法と、有用なリンクまたはコードを提供することは問題ありません

2

REACT_APP_STAGEを使用してビルドをビルドし、それをアプリケーションでprocess.env.REACT_APP_STAGEとして使用します。

"scripts": {
    "analyze": "source-map-Explorer 'build/static/js/*.js'",
    "build-css": "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/",
    "watch-css": "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive",
    "start-js": "react-scripts start",
    "start": "REACT_APP_STAGE=local npm-run-all -p watch-css start-js",
    "build": "npm run build-css && react-scripts build",
    "build-dev": "REACT_APP_STAGE=dev react-scripts build",
    "build-prod": "REACT_APP_STAGE=prod react-scripts build",
    "build-qa": "REACT_APP_STAGE=qa react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
0
Aman Gupta

NODE_ENVの前でcross-envを使用します。

npm i -g cross-env
"staging": "concurrently -k  \"npm:staging-server\" \"cross-env NODE_ENV='staging' PORT=3003 react-scripts start\"",
0
Yangha Koo