arabold / serverless-export-env

Serverless plugin to export environment variables into a .env file
MIT License
101 stars 34 forks source link

Issue caused by new version of cfn-resolver-lib #46

Closed danemauland closed 2 years ago

danemauland commented 2 years ago

It looks like V 1.1.8 of cfn-resolver-lib is causing some issues. I was able to narrow it down to that package/update, but haven't yet uncovered what's actually breaking it. I'm receiving the following error now whenever I try to generate the environment variables:

TypeError: Cannot convert undefined or null to object
    at Function.entries (<anonymous>)
    at getParameterDefaults (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/cfn-resolver-lib/src/parameterHelper.js:6:54)
    at NodeEvaluator.evaluateNodes (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/cfn-resolver-lib/src/nodeEvaluator.js:17:34)
    at /home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/serverless-export-env/src/lib/resolveCloudFormationEnvVariables.js:98:30
    at tryCatcher (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:544:35)
    at Promise._settlePromise (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:729:18)
    at Promise._fulfill (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:673:18)
    at PromiseArray._resolve (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise_array.js:127:19)
    at PromiseArray._promiseFulfilled (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise_array.js:145:14)
    at PromiseArray._iterate (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise_array.js:115:31)
    at PromiseArray.init [as _init] (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise_array.js:79:10)
    at Promise._settlePromise (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:601:21)
    at Promise._settlePromise0 (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:729:18)
    at Promise._fulfill (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:673:18)
    at PromiseArray._resolve (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise_array.js:127:19)
    at PromiseArray._promiseFulfilled (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise_array.js:145:14)
    at Promise._settlePromise (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:609:26)
    at Promise._settlePromise0 (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/home/dane/improovy/ImproovyAWS/services/transcripts/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:464:21)
danemauland commented 2 years ago

In the meantime, a workaround would be to override the dependency version by adding this to the package.json at the same level as the dependencies key:

"overrides": {
    "serverless-export-env": {
      "cfn-resolver-lib": "1.1.7"
    }
  }
zsan commented 2 years ago

In the meantime, a workaround would be to override the dependency version by adding this to the package.json at the same level as the dependencies key:

"overrides": {
    "serverless-export-env": {
      "cfn-resolver-lib": "1.1.7"
    }
  }

It's not working on my end, i tried with:

{
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "sls": "sls"
  },
  "devDependencies": {
    "serverless": "^3.18.1",
    "serverless-export-env": "^2.1.0"
  },
  "overrides": {
    "serverless-export-env": {
      "cfn-resolver-lib": "1.1.7"
    }
  }
}
danemauland commented 2 years ago

You might need to delete your package-lock.json and run npm install again

On Sat, May 21, 2022 at 11:46 AM zsan @.***> wrote:

In the meantime, a workaround would be to override the dependency version by adding this to the package.json at the same level as the dependencies key:

"overrides": { "serverless-export-env": { "cfn-resolver-lib": "1.1.7" } }

It's not working on my end, i tried with:

{ "version": "1.0.0", "main": "index.js", "license": "MIT", "scripts": { "sls": "sls" }, "devDependencies": { "serverless": "^3.18.1", "serverless-export-env": "^2.1.0" }, "overrides": { "serverless-export-env": { "cfn-resolver-lib": "1.1.7" } } }

— Reply to this email directly, view it on GitHub https://github.com/arabold/serverless-export-env/issues/46#issuecomment-1133658554, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWGFUXRNSLGAW64RKFZGZLVLEAO3ANCNFSM5WQQK27Q . You are receiving this because you authored the thread.Message ID: @.***>

zsan commented 2 years ago

Same thing, Just FYI, i am using yarn

cat node_modules/cfn-resolver-lib/package.json| grep version
  "version": "1.1.7",

And

yarn sls export-env                                         
yarn run v1.22.17
$ sls export-env
Environment: darwin, node 16.14.0, framework 3.18.1 (local), plugin 6.2.2, SDK 4.3.2

Error:
TypeError: Cannot convert undefined or null to object
    at Function.entries (<anonymous>)
    at getParameterDefaults (/Users/zak/Projects/lta-opensearch/node_modules/serverless-export-env/node_modules/cfn-resolver-lib/src/parameterHelper.js:6:54)
    at NodeEvaluator.evaluateNodes (/Users/zak/Projects/lta-opensearch/node_modules/serverless-export-env/node_modules/cfn-resolver-lib/src/nodeEvaluator.js:17:34)
    at /Users/zak/Projects/lta-opensearch/node_modules/serverless-export-env/src/lib/resolveCloudFormationEnvVariables.js:98:30
    at tryCatcher (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:544:35)
    at Promise._settlePromise (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:729:18)
    at Promise._fulfill (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:673:18)
    at PromiseArray._resolve (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise_array.js:127:19)
    at PromiseArray._promiseFulfilled (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise_array.js:145:14)
    at PromiseArray._iterate (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise_array.js:115:31)
    at PromiseArray.init [as _init] (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise_array.js:79:10)
    at Promise._settlePromise (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:601:21)
    at Promise._settlePromise0 (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:729:18)
    at Promise._fulfill (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:673:18)
    at PromiseArray._resolve (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise_array.js:127:19)
    at PromiseArray._promiseFulfilled (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise_array.js:145:14)
    at Promise._settlePromise (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:609:26)
    at Promise._settlePromise0 (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/zak/Projects/lta-opensearch/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (node:internal/timers:466:21)

1 deprecation found: run 'serverless doctor' for more details
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

You might need to delete your package-lock.json and run npm install again

zsan commented 2 years ago

My temporary workaround, downgraded to v 1.4.4

{
  "name": "lta-opensearch",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "author": "zsan",
  "private": true,
  "scripts": {
    "sls": "sls"
  },
  "devDependencies": {
    "serverless": "^3.18.1",
    "serverless-export-env": "1.4.4"
  },
  "dependencies": {}
}
drivej commented 2 years ago

+1 Same problem. Downgrade solution Works.

aiden-walton commented 2 years ago

Also having this issue using yarn and Serverless v3

estahn commented 2 years ago

Same problem here. Can't use 1.4.4 with serverless v3 because of dependency restrictions:

npm ERR! peer serverless@"1.x || 2.x" from serverless-export-env@1.4.4
npm ERR! node_modules/serverless-export-env
npm ERR!   serverless-export-env@"1.4.4" from the root project