Npm unsupported engine obwohl richtige Version

Hallo zusammen
Ich setze gerade eine neue Shopware development Umgebung auf (Ubuntu 22.04). Dabei stecke ich fest beim ./psh.phar install Schritt.
Folgendes:
Bei Schritt 32/46 npm clean-install --prefix vendor/shopware/platform/src/Administration/Resources/app/administration

	npm WARN EBADENGINE Unsupported engine {
	npm WARN EBADENGINE   package: 'administration@1.0.0',
	npm WARN EBADENGINE   required: { node: '^16.0.0', npm: '^8.0.0' },
	npm WARN EBADENGINE   current: { node: 'v18.12.1', npm: '8.19.2' }
	npm WARN EBADENGINE }
	npm WARN EBADENGINE Unsupported engine {
	npm WARN EBADENGINE   package: '@shopware-ag/jest-preset-sw6-admin@4.0.0',
	npm WARN EBADENGINE   required: { node: '^16.0.0', npm: '^8.0.0' },
	npm WARN EBADENGINE   current: { node: 'v18.12.1', npm: '8.19.2' }
	npm WARN EBADENGINE }

       npm WARN deprecated [...]

Gefolgt von vielen outdated libraries.

Da ich die Vorraussetzungen fĂĽr die unterstĂĽtzten Node und Npm Versionen erfĂĽlle frage ich warum die installation trotzdem nicht funktioniert.
Soll ich Node 19.3.0 installieren? Ăśbersehe ich da etwas?

Browserslist: caniuse-lite is outdated. Please run:
	  npx update-browserslist-db@latest
	  Why you should do it regularly: https://github.com/browserslist/update-db#readme
	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 (/app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/webpack/lib/util/createHash.js:135:53)
	    at NormalModule._initBuildHash (/app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/webpack/lib/NormalModule.js:417:16)
	    at handleParseError (/app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/webpack/lib/NormalModule.js:471:10)
	    at /app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/webpack/lib/NormalModule.js:503:5
	    at /app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/webpack/lib/NormalModule.js:358:12
	    at /app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/loader-runner/lib/LoaderRunner.js:373:3
	    at iterateNormalLoaders (/app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
	    at iterateNormalLoaders (/app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
	    at /app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/loader-runner/lib/LoaderRunner.js:236:3
	    at context.callback (/app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
	    at /app/vendor/shopware/platform/src/Administration/Resources/app/administration/node_modules/babel-loader/lib/index.js:59:71 {
	  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
	  library: 'digital envelope routines',
	  reason: 'unsupported',
	  code: 'ERR_OSSL_EVP_UNSUPPORTED'
	}
	
	Node.js v18.12.1
	
Execution aborted, a subcommand failed!

Nach dem Testen mit jeglichen Node Versionen komme ich immer wieder auf das hier zurĂĽck. Unglaublich mĂĽhsam. Kann mir jemand weiterhelfen?

Also ich habe mehr mit den Versionen gespielt. Folgendes:
im Ordner
dev-ops/docker/containers/app
befindet sich ein
Dockerfile
in dem File ungefähr Zeile 14
IMAGE_NODE_VERSION=16

→ Installiert Node 16.19 mit Npm 8.19.3

Zahlreiche…

npm WARN old Lockfile oder npm WARN depricated blabla

…später funktioniert dann endlich die Installation.

An die Shopware devs: Warum steht im Dockerfile IMAGE_NODE_VERSION=18 wenn das garnicht kompatibel ist?

1 Like

StoĂźe mit der Version 6.4.20.2 und NodeJs Version 20 auf das selbe Problem:
Die Lösung in meinem Falle (Entwicklungsumgebung) war folgendes im Terminal aufzurufen:

export NODE_OPTIONS=–openssl-legacy-provider

Danach klappt es.

1 Like