Как передать в код только глобальные переменные времени компиляции? - PullRequest
0 голосов
/ 10 марта 2020

Я хочу проверить, работает ли код в режиме разработки, а затем, например, передать redux devtools enchancer в redux store. И другие подобные случаи. Я знаю, что могу использовать process.env.NODE_ENV, но это слишком многословно. Я также могу записать его в переменную один раз в отдельном модуле и экспортировать. Но импортировать только эту одну переменную и иметь модуль с одной переменной мне кажется нерациональным. Идеальное решение, которого я хочу достичь, - иметь глобальный доступ к этой переменной, не импортируя и не декларируя ее в коде, и динамически заменяя ее во время компиляции на строку, т.е. "development" вместо process.env.NODE_ENV. Отличным примером того, что я хочу, является «псевдоглобальная» переменная __DEV__ в базе кода React. Так как я могу этого достичь? Заранее спасибо.

1 Ответ

0 голосов
/ 11 марта 2020

Я нашел решение. Webpack DefinePlugin - это то, что мне нужно.

// webpack.confg.js

const webpack = require('webpack');
//...

module.exports = (env, argv) => ({
  //...
  plugins: [
    //...
    new webpack.DefinePlugin({
      IS_DEV: argv.mode !== 'production'
    })
  ]
})
...