diff --git a/lib/EnvironmentPlugin.js b/lib/EnvironmentPlugin.js index 30966c55ffe..ad8d57336cd 100644 --- a/lib/EnvironmentPlugin.js +++ b/lib/EnvironmentPlugin.js @@ -23,7 +23,7 @@ class EnvironmentPlugin { apply(compiler) { const definitions = this.keys.reduce((defs, key) => { - const value = process.env[key] || this.defaultValues[key]; + const value = process.env[key] !== undefined ? process.env[key] : this.defaultValues[key]; if(value === undefined) { compiler.plugin("this-compilation", compilation => { diff --git a/test/configCases/plugins/environment-plugin/errors.js b/test/configCases/plugins/environment-plugin/errors.js index 1e23c7780d7..3f39721426b 100644 --- a/test/configCases/plugins/environment-plugin/errors.js +++ b/test/configCases/plugins/environment-plugin/errors.js @@ -1,4 +1,4 @@ -const variables = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh']; +const variables = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'iii']; const modules = [{ name: 'aaa', variables: ['aaa'] @@ -14,6 +14,9 @@ const modules = [{ }, { name: 'ggghhh', variables: ['ggg', 'hhh'] +}, { + name: 'iii', + variables: ['iii'] }]; // build an array of regular expressions of expected errors diff --git a/test/configCases/plugins/environment-plugin/index.js b/test/configCases/plugins/environment-plugin/index.js index 5147bf36882..9075e898316 100644 --- a/test/configCases/plugins/environment-plugin/index.js +++ b/test/configCases/plugins/environment-plugin/index.js @@ -28,3 +28,8 @@ it("should import multiple process.env var with default values", () => { if(process.env.HHH !== "hhh") require.include("hhh"); }); + +it("should import process.env var with empty value", () => { + if(process.env.III !== "") + require.include("iii"); +}); diff --git a/test/configCases/plugins/environment-plugin/webpack.config.js b/test/configCases/plugins/environment-plugin/webpack.config.js index 8a23cb07132..611136aaad3 100644 --- a/test/configCases/plugins/environment-plugin/webpack.config.js +++ b/test/configCases/plugins/environment-plugin/webpack.config.js @@ -6,6 +6,7 @@ process.env.CCC = "ccc"; process.env.EEE = "eee"; process.env.FFF = "fff"; process.env.GGG = "ggg"; +process.env.III = ""; module.exports = [{ name: "aaa", @@ -40,4 +41,10 @@ module.exports = [{ HHH: 'hhh' }) ] +}, { + name: "iii", + module: { unknownContextRegExp: /$^/, unknownContextCritical: false }, + plugins: [ + new EnvironmentPlugin("III") + ] }];