ステージング、本番サーバーにElasticbeanstalkを使っていて、ハマったのでメモ。
結論
https://laravel-mix.com/extensions/env-file
を使う。
// package.json
"scripts": {
"local": "npm run development", // localは.envを読めばいいので上記使う必要なし
"dev": "NODE_ENV=development ENV_FILE=./env/.env.staging node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", // デフォルトから変更。
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production ENV_FILE=./env/.env.production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
// webpack.mix.js
let mix = require('laravel-mix');
require('mix-env-file');
if(process.env.ENV_FILE) {
mix.env(process.env.ENV_FILE);
}}