diff --git a/packages/core/integration-tests/test/integration/env-unused-require/index.js b/packages/core/integration-tests/test/integration/env-unused-require/index.js new file mode 100644 index 00000000000..1c84632ac0c --- /dev/null +++ b/packages/core/integration-tests/test/integration/env-unused-require/index.js @@ -0,0 +1,7 @@ +module.exports = function () { + if(process.env.ABC === 'a') { + return require("./unused.js"); + } else { + return "ok"; + } +}; diff --git a/packages/core/integration-tests/test/integration/env-unused-require/unused.js b/packages/core/integration-tests/test/integration/env-unused-require/unused.js new file mode 100644 index 00000000000..266db37eae0 --- /dev/null +++ b/packages/core/integration-tests/test/integration/env-unused-require/unused.js @@ -0,0 +1 @@ +module.exports = "unused"; diff --git a/packages/core/integration-tests/test/javascript.js b/packages/core/integration-tests/test/javascript.js index 8c0d8e32037..3dfe9405ed0 100644 --- a/packages/core/integration-tests/test/javascript.js +++ b/packages/core/integration-tests/test/javascript.js @@ -347,6 +347,28 @@ describe('javascript', function () { assert(!contents.includes('import')); }); + it('should ignore unused requires after process.env inlining', async function () { + let b = await bundle( + path.join(__dirname, '/integration/env-unused-require/index.js'), + { + env: {ABC: 'XYZ'}, + }, + ); + + assertBundles(b, [ + { + type: 'js', + assets: ['index.js'], + }, + ]); + + let contents = await outputFS.readFile(b.getBundles()[0].filePath, 'utf8'); + assert(!contents.includes('unused')); + + let output = await run(b); + assert.strictEqual(output(), 'ok'); + }); + it('should produce a basic JS bundle with object rest spread support', async function () { let b = await bundle( path.join(