Как получить доступ к переменным командной строки из кода, используя скрипт npm в веб-пакете? - PullRequest
1 голос
/ 15 мая 2019

Мне нужно получить доступ к параметрам командной строки из скрипта npm в моем файле "constants.js".

Я обнаружил, что могу получить доступ к параметрам в файле webpack.config.js с помощью process.env, но он не определен в исходных файлах приложения.

Мне нужно запустить скрипт из консоли, например:

npm webpack-dev-server --hot MY_PARAMETER=some_value

А затем каким-то образом получить доступ к MY_PARAMETER в моем constants.js, например:

process.env.MY_PARAMETER === "some_value"   // true

Может кто-нибудь помочь? Большое спасибо.

1 Ответ

0 голосов
/ 15 мая 2019

Если у вас есть файл .env, лучше всего будет использовать dotenv-webpack (и при желании string-replace-webpack-plugin или что-то подобное).Читая документацию, вы можете добавить запись .env.local в ваш файл игнорирования VCS (.gitignore, .hgignore и т. Д.), Если вы беспокоитесь о безопасности, и позвоните по номеру * 1011.* с объектом, для которого определено path, то есть

const DotEnvPlugin = require('dotenv-webpack');
module.exports = {
/* other settings */
  plugins: [
    // other plugins,
    new DotEnvPlugin({
      path:'.env.local',
      // safe: true, // load '.env.example' to verify the '.env' variables are all set. Can also be a string to a different file.
    })
  ]
}

Если у вас нет файла .env, вышеприведенный string-replace-webpack-plugin может быть полезен, и вы просто добавляете эти переменные в свойсреда.(проконсультируйтесь с вашей ОС / администратором о том, как это сделать)

Наконец, вы можете определить их в вызове командной строки;они просто должны идти перед выполнением любой команды, например (в bash):

MY_PARAMETER=some_value node_modules/.bin/webpack-dev-server --hot
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...