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?

2 „Gefällt mir“

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 „Gefällt mir“

Habe dasselbe Problem aber mit Node 18.16.1 und SPW 6.4.20.2
export NODE_OPTIONS=-openssl-legacy-provider hat bei mir nix gebracht.

Shopware 6 Storefront █████████████████████████ building (10%) 0/1 modules 1 active
 babel-loader › src/main.js

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 (/var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/webpack/lib/NormalModule.js:412:16)
    at /var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/webpack/lib/NormalModule.js:444:10
    at /var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/webpack/lib/NormalModule.js:320:13
    at /var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /var/www/html/vendor/shopware/storefront/Resources/app/storefront/node_modules/babel-loader/lib/index.js:55:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

$Node.js v18.16.1

Hallo @Raphael-Boos
Sieht so aus als gäbe es ein Problem mit der Node SSL Bibliothek. Welche NPM Version hast du?
Falls es nicht an dem liegt. Würde ich, wie bei meiner obigen Lösung, ein Node.js Downgrade (Auf 16) empfehlen.

LG

Hallo @NickJ,

danke für Deine Rückmeldung - ich habe
$ node -v v18.16.1
$ npm -v 9.5.1

Laut Shopware Doku wäre ja ein Downgrade nicht sinnvoll, es wäre entgegen den Systemanforderungen.
Denn die Version Requirements sind bei SPW 6.4.20.0 - 6.4.20.2 auf Node/Nodejs 18 angehoben worden.

Die 6.4er Versionen kleiner 6.4.20.0 brauchen nur Node 12-16.

Ich habe unabhängig davon mal ein Ticket bei Shopware geöffnet und hoffe dass hier Feedback dazu kommt.

Hallo @NIckJ, Antwort vom Support - Node Version 16 verwenden entgegen den Version Requirements, da die verwendete Webpack inkompatibel mit Node 18 ist.

1 „Gefällt mir“

Hallo @Raphael-Boos
Das haben die gesagt? :joy:

Naja am Ende ist das genau was ich oben gemacht habe. Schade dass die das nirgends vermerken.

Genau das habe ich dem Support auch geschrieben.