diff --git a/packages/core/parcel-bundler/src/assets/JSAsset.js b/packages/core/parcel-bundler/src/assets/JSAsset.js index 5e108895203..1e1b9308a80 100644 --- a/packages/core/parcel-bundler/src/assets/JSAsset.js +++ b/packages/core/parcel-bundler/src/assets/JSAsset.js @@ -16,6 +16,7 @@ const hoist = require('../scope-hoisting/hoist'); const path = require('path'); const fs = require('@parcel/fs'); const logger = require('@parcel/logger'); +const isAccessedVarChanged = require('../utils/isAccessedVarChanged'); const IMPORT_RE = /\b(?:import\b|export\b|require\s*\()/; const ENV_RE = /\b(?:process\.env)\b/; @@ -40,13 +41,7 @@ class JSAsset extends Asset { } shouldInvalidate(cacheData) { - for (let key in cacheData.env) { - if (cacheData.env[key] !== process.env[key]) { - return true; - } - } - - return false; + return isAccessedVarChanged(cacheData); } mightHaveDependencies() { diff --git a/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js b/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js index 715a8ea94c2..1e8e8197000 100644 --- a/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js +++ b/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js @@ -1,10 +1,16 @@ const Asset = require('../Asset'); const localRequire = require('../utils/localRequire'); +const isAccessedVarChanged = require('../utils/isAccessedVarChanged'); class TypeScriptAsset extends Asset { constructor(name, options) { super(name, options); this.type = 'js'; + this.cacheData.env = {}; + } + + shouldInvalidate(cacheData) { + return isAccessedVarChanged(cacheData); } async generate() { diff --git a/packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js b/packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js new file mode 100644 index 00000000000..9cd4284b0da --- /dev/null +++ b/packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js @@ -0,0 +1,14 @@ +/* + Checks if any of the used variable from process.env is changed +*/ +function isAccessedVarChanged(cacheData) { + for (let key in cacheData.env) { + if (cacheData.env[key] !== process.env[key]) { + return true; + } + } + + return false; +} + +module.exports = isAccessedVarChanged;