Как использовать пользовательский файл env (.env.production.abc) в скрипте npm - PullRequest
0 голосов
/ 15 апреля 2019

Я использую один и тот же код для нескольких проектов, основываясь на значении файла среды, которое дает различные функции для проекта.

Я добавил:

"scripts":{
  "abc": "npm-run-all -p watch-css start-js"
  "xyz": "npm-run-all -p watch-css start-js"
}

Так что я хочу сделать как, если я запускаю npm run abc, это должно занять .env.production.abc, а если я запускаю команду npm run xyz, это должно занять .env.production.xyz.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Вам необходимо использовать DefinePlugin в конфигурации вашего веб-пакета.

В вашем webpack.config.js

module.exports = {
    .......
    new webpack.DefinePlugin({
        'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
    })
    .......
}

Теперь у вас есть переменная NODE_ENV здесь.

вам нужно создать то же имя файла в соответствии со значением, которое вы предоставляете в NODE_ENV.

пример:

в вашем package.json

"abc": "NODE_ENV=staging npm-run-all -p watch-css start-js"
"xyz": "NODE_ENV=production npm-run-all -p watch-css start-js"

Теперь у вас должен быть файл

staging.js и production.js.

0 голосов
/ 15 апреля 2019

попробуйте следующие изменения.Установите dotenv в свой проект

"scripts":{
  "abc": "npm-run-all -p watch-css -r dotenv/config start.js dotenv_config_path=/path/to/abc/env"
  "xyz": "npm-run-all -p watch-css -r dotenv/config start.js dotenv_config_path=/path/to/xyz/env"
} 
...