nippur72 / ifdef-loader

Webpack loader for JavaScript/TypeScript conditional compilation.
286 stars 29 forks source link

Define environment variables by default #38

Open silverwind opened 4 years ago

silverwind commented 4 years ago

I think it'd make sense to define everything in process.env by default, so instead of

/// #if env == 'PRODUCTION'
/// #if PRODUCTION

one can do a more standard

/// #if NODE_ENV === 'production'
/// #if process.env.NODE_ENV === 'production'

Variables defined in options should overwrite bare variables like NODE_ENV but process.env should always reflect the actual environment.

I imagine this would allow to integrate the loader with default options in most cases.

yoursunny commented 4 years ago

Caution: on Windows, there are default environment variable names that contain ( character, such as ProgramFiles(x86). If they are defined as part of options by default, it will cause error on this line: https://github.com/nippur72/ifdef-loader/blob/5018e6437fb6d8d37568d3003e2c2e6b4dd8ad49/preprocessor.ts#L209 See https://github.com/kenpb/parcel-plugin-ifdef/issues/2 for more information.