From 48c0fa39d0577e968d7914c2c447287ae65d2f95 Mon Sep 17 00:00:00 2001 From: subhero24 Date: Tue, 28 Aug 2018 20:03:59 +0200 Subject: [PATCH] Fix dotenv package error (#1953) This fixes #1440. Package "dotenv" does something like "process.env.hasOwnProperty( ... )". Parcel expects a value property lookup on process.env, not a function call. So valueToNode fails if it was called with a function like "hasOwnProperty". --- packages/core/parcel-bundler/src/visitors/env.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/core/parcel-bundler/src/visitors/env.js b/packages/core/parcel-bundler/src/visitors/env.js index c060a4a376e..b34ae7cfd38 100644 --- a/packages/core/parcel-bundler/src/visitors/env.js +++ b/packages/core/parcel-bundler/src/visitors/env.js @@ -7,10 +7,13 @@ module.exports = { if (matchesPattern(node.object, 'process.env')) { let key = types.toComputedKey(node); if (types.isStringLiteral(key)) { - let val = types.valueToNode(process.env[key.value]); - morph(node, val); - asset.isAstDirty = true; - asset.cacheData.env[key.value] = process.env[key.value]; + let prop = process.env[key.value]; + if (typeof prop !== 'function') { + let value = types.valueToNode(prop); + morph(node, value); + asset.isAstDirty = true; + asset.cacheData.env[key.value] = process.env[key.value]; + } } } }