Ларавел 5.8. Как использовать переменную .env файла в webpack.mix.js - PullRequest
0 голосов
/ 16 марта 2019

В файле .env я сделал следующее: APP_ENV = production 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();
}

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Не было необходимости создавать промежуточную переменную MIX_APP_ENV в файле .env.Следующий код работает:

require('dotenv').config();
const env = process.env.APP_ENV;
0 голосов
/ 16 марта 2019

Вы не можете использовать его таким образом, потому что вы находитесь в файле JS и JS не имеет к нему доступа. Вы можете установить с npm dotenv npm install dotenv --save и использовать его следующим образом: 'require (' dotenv '). Load ();' внутри вашего файла микса и теперь вы можете сделать это:

    if (process.env.NODE_ENV !== 'production') {
       // code
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...