ExpoSEJS / ExpoSE

A Dynamic Symbolic Execution (DSE) engine for JavaScript. ExpoSE is highly scalable, compatible with recent JavaScript standards, and supports symbolic modelling of strings and regular expressions.
MIT License
183 stars 36 forks source link

Specify required node version #101

Closed kumavis closed 3 years ago

kumavis commented 3 years ago

Fixes https://github.com/ExpoSEJS/ExpoSE/issues/100

Two main things:

  1. set a required node version

    • setting an "engines" field in the package.json
    • telling npm to strictly enforce the "engines" field via the .npmrc file
  2. providing a configuration for nvm via .nvmrc

    • this allows nvm users to do nvm install && nvm use to ensure they are on a compatible node version
kumavis commented 3 years ago

running npm install on an incorrect node version will result in an error message and a non-zero exit code


ExpoSE on  node-engine-field is 📦 v1.0.0 via ⬢ v12.16.1 on 🐳 v19.03.4 
⇡0% ➜ npm i
npm ERR! code ENOTSUP
npm ERR! notsup Unsupported engine for expose@1.0.0: wanted: {"node":"^8.0.0"} (current: {"node":"12.16.1","npm":"6.13.4"})
npm ERR! notsup Not compatible with your version of node/npm: expose@1.0.0
npm ERR! notsup Not compatible with your version of node/npm: expose@1.0.0
npm ERR! notsup Required: {"node":"^8.0.0"}
npm ERR! notsup Actual:   {"npm":"6.13.4","node":"12.16.1"}

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/xyz/.npm/_logs/2020-08-03T03_27_30_329Z-debug.log
``
jawline commented 3 years ago

This is great, thank you.