反応アプリの実行中にローカルから複数の環境をターゲットにしようとしています。
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の両方のポートで実行されています。これを回避し、ステージング構成を理解するのに役立つ方法と、有用なリンクまたはコードを提供することは問題ありません
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"
},
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\"",