En essayant, comme d'hab, de builder mon appli faite avec VueJS, une erreur obscure est apparue :
$ npm run build
> client-manager@0.1.0 build > vue-cli-service build
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
⠹ Building for production...
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at module.exports
... code omitted ---
at /home/stoorm/work/project/node_modules/graceful-fs/graceful-fs.js:61:14
at FSReqCallback.oncomplete (node:fs:200:23)
{
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Bon, pas le temps d'entrer trop dans les détails, cette erreur peut être causée par une incompatibilité entre la version de Node.js et la version d'OpenSSL installées sur votre système. Elle est mentionnée dans les release notes de Node.js 17.0.0 ou une solution est proposée :
If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application with Node.js 17, it’s likely that your application or a module you’re using is attempting to use an algorithm or key size which is no longer allowed by default with OpenSSL 3.0. A command-line option, --openssl-legacy-provider, has been added to revert to the legacy provider as a temporary workaround for these tightened restrictions.
Il suffit donc d'ajouter --openssl-legacy-provider dans les NODE_OPTIONS comme suit avant de lancer le build :
$ export NODE_OPTIONS=--openssl-legacy-provider