nyaf
nyaf copied to clipboard
Dev server won't start with Node 18.7.0/npm 8.3.0
I have set up a fresh "basic" project following the documentation, which seems to have worked fine so far. After doing
npm i
I tried
npm start
But the development server won't start.
Here's the terminal output:
franktopel@MacGottSmall ~/workspace/mr-research/nyaf main ± npm start
> [email protected] start
> webpack-dev-server
ℹ 「wds」: Project is running at http://localhost:9000/
ℹ 「wds」: webpack output is served from /
ℹ 「wds」: Content not from webpack is served from /Users/franktopel/workspace/mr-research/nyaf/dist
ℹ 「wds」: 404s will fallback to /index.html
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 (/Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:236:3
at runSyncOrAsync (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
at iterateNormalLoaders (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
at Array.<anonymous> (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
at Storage.finished (/Users/franktopel/workspace/mr-research/nyaf/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
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 (/Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at Array.<anonymous> (/Users/franktopel/workspace/mr-research/nyaf/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
at Storage.finished (/Users/franktopel/workspace/mr-research/nyaf/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
at /Users/franktopel/workspace/mr-research/nyaf/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
at /Users/franktopel/workspace/mr-research/nyaf/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'
}
Switching down to Node 16 the dev server works. It's fine for the time being to work with Node 16; see this issue as a hint that some research/work needs to be done to keep your stuff working with the upcoming LTS version of Node.
Apparently this is related to OpenSSL 3.0 by default no longer supporting certain encryption options for hashing. According to https://dtuto.com/questions/7200/opensslerrorstack this can be fixed like suggested in this PR; I can confirm it works for me (MacOS 12.5/Apple Silicon).