nuxt / create-nuxt-app

Create Nuxt.js App in seconds.
MIT License
3.49k stars 429 forks source link

Please specificy which node versions are compatible #1021

Open laszukdawid opened 1 year ago

laszukdawid commented 1 year ago

Version

create-nuxt-app/5.0.0 linux-x64 node-v18.12.1

Steps to reproduce

npx create-nuxt-app

What is Expected?

Template to work.

It is really demotivating experience when starting a new, empty project and be hit with JS ecosystem of things not working. Please specify somewhere which node versions are required to successfully create a new project. The minimum range in Readme would do. If possible, adding verification during installation "wizard" would also help.

What is actually happening?

Error

◯ Server

node:internal/crypto/hash:71
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports ({redacted}/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash ({redacted}/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError ({redacted}/node_modules/webpack/lib/NormalModule.js:471:10)
    at /{redacted}/node_modules/webpack/lib/NormalModule.js:503:5
    at {redacted}/node_modules/webpack/lib/NormalModule.js:358:12
    at {redacted}/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders ({redacted}/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at Array.<anonymous> ({redacted}/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished ({redacted}/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at {redacted}/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at {redacted}/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.12.1
robertcoroianu commented 1 year ago

Hello, For Nuxt 2 you need to use Node 16. I think is because Node 18> uses OpenSSL 3 or something like this I've read

scscgit commented 10 months ago

For Node version 17+, add env NODE_OPTIONS=--openssl-legacy-provider

If you want to support both versions, here is one annoying solution (which will make the start take longer by trying both variants): the dev script in package.json becomes (with cross-env to support Windows+Linux): "dev": "nuxt || echo Trying to re-run dev script with --openssl-legacy-provider to cover the case if you got error ERR_OSSL_EVP_UNSUPPORTED due to having Node.js version 17+ && cross-env NODE_OPTIONS=--openssl-legacy-provider nuxt"