Using Node v20+ for AEM react project
I am using the latest version of the AEM Project Archetype (v49) for a React SPA site.
I'd like to use the latest version of Node (v22.3.0) or at the very least v20.15.0. However when I update the generated Maven project to either v20 or v22, I get build errors.
mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate \
-D archetypeGroupId=com.adobe.aem \
-D archetypeArtifactId=aem-project-archetype \
-D archetypeVersion=49\
-D appTitle="My Site" \
-D appId="mysite" \
-D groupId="com.mysite" \
-D aemVersion=6.5.17 \
-D frontendModule="react"
In the root pom.xml I update:
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
...
<configuration>
<nodeVersion>v22.3.0</nodeVersion>
<npmVersion>10.8.1</npmVersion>
</configuration>
...
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
...
<configuration>
<nodeVersion>v22.3.0</nodeVersion>
<npmVersion>10.8.1</npmVersion>
</configuration>
...
</plugin>
In ui.tests pom.xml, I update:
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
...
<configuration>
<nodeVersion>v22.3.0</nodeVersion>
<npmVersion>10.8.1</npmVersion>
</configuration>
...
</plugin>
Run:
mvn clean install
Error:
[INFO] --- frontend:1.12.0:npm (npm run build) @ mysite.ui.frontend ---
[INFO] Running 'npm run build' in /Users/demo/mysite/ui.frontend
[INFO]
[INFO] > mysite@0.1.0 build
[INFO] > react-scripts build && clientlib --verbose
[INFO]
[INFO] Creating an optimized production build...
[INFO] /Users/demo/mysite/ui.frontend/node_modules/react-scripts/scripts/build.js:19
[INFO] throw err;
[INFO] ^
[INFO]
[INFO] Error: error:0308010C:digital envelope routines::unsupported
[INFO] at new Hash (node:internal/crypto/hash:79:19)
[INFO] at Object.createHash (node:crypto:139:10)
[INFO] at module.exports (/Users/demo/mysite/ui.frontend/node_modules/webpack/lib/util/createHash.js:135:53)
[INFO] at NormalModule._initBuildHash (/Users/demo/mysite/ui.frontend/node_modules/webpack/lib/NormalModule.js:417:16)
[INFO] at /Users/demo/mysite/ui.frontend/node_modules/webpack/lib/NormalModule.js:452:10
[INFO] at /Users/demo/mysite/ui.frontend/node_modules/webpack/lib/NormalModule.js:323:13
[INFO] at /Users/demo/mysite/ui.frontend/node_modules/loader-runner/lib/LoaderRunner.js:367:11
[INFO] at /Users/demo/mysite/ui.frontend/node_modules/loader-runner/lib/LoaderRunner.js:233:18
[INFO] at context.callback (/Users/demo/mysite/ui.frontend/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
[INFO] at /Users/demo/mysite/ui.frontend/node_modules/babel-loader/lib/index.js:59:103 {
[INFO] opensslErrorStack: [
[INFO] 'error:03000086:digital envelope routines::initialization error',
[INFO] 'error:0308010C:digital envelope routines::unsupported'
[INFO] ],
[INFO] library: 'digital envelope routines',
[INFO] reason: 'unsupported',
[INFO] code: 'ERR_OSSL_EVP_UNSUPPORTED'
[INFO] }
[INFO]
[INFO] Node.js v22.3.0
Does anyone know what else needs to be changed for the project to build?
If I run "npm update" from within the ui.frontend project using node v22, I get the following error:
npm error gyp: Undefined variable standalone_static_library in binding.gyp while trying to load binding.gyp
npm error gyp ERR! configure error
npm error gyp ERR! stack Error: `gyp` failed with exit code: 1
npm error gyp ERR! stack at ChildProcess.onCpExit (/Users/demo/mysite/ui.frontend/node_modules/node-gyp/lib/configure.js:345:16)
npm error gyp ERR! stack at ChildProcess.emit (node:events:520:28)
npm error gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12)
npm error gyp ERR! System Darwin 23.4.0
npm error gyp ERR! command "/Users/demo/.nvm/versions/node/v22.3.0/bin/node" "/Users/demo/mysite/ui.frontend/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm error gyp ERR! cwd /Users/demo/mysite/ui.frontend/node_modules/node-sass
npm error gyp ERR! node -v v22.3.0
npm error gyp ERR! node-gyp -v v3.8.0