【发布时间】:2019-08-07 12:40:28
【问题描述】:
我在 .env 文件中做了以下操作: APP_ENV=生产 MIX_APP_ENV="${APP_ENV}"
在 webpack.mix.js 文件中: const APP_ENV = process.env.MIX_APP_ENV;
使用 if else 运算符,我检查了没有为 APP_ENV 变量分配任何内容。 我需要执行以下操作 - 根据环境,将 sass 和 js 文件编译到特定文件夹中。
我正在尝试执行以下操作,但没有任何效果:
const APP_ENV = process.env.MIX_APP_ENV;
if (APP_ENV == 'dev' || APP_ENV == 'production') {
mix
.js('resources/js/app.js', 'js')
.sass('resources/sass/app.scss', 'css')
.version();
} else {
mix
.setPublicPath('public/build')
.setResourceRoot('/build/')
.js('resources/js/app.js', 'js')
.sass('resources/sass/app.scss', 'css')
.version();
}
【问题讨论】:
-
你的
.env文件没有加载到你的环境中,而是 Laravel 使用的dotenvPHP 库查找.env文件并在运行时通过env帮助程序使值可用-- 允许环境变量覆盖.env指定的值。这意味着在 PHP 之外您需要使用等效的库,例如:npmjs.com/package/dotenv-webpack 或 npmjs.com/package/dotenv -
dotenv是laravel-mix的依赖项
标签: laravel webpack environment-variables