semantic-release is not triggered when using commonJS extension for configuration file
When the package.json
is configured with "type": "module"
, semantic-release
fails with the following error:
[9:11:39 AM] [semantic-release] › ✖ An error occurred while running semantic-release: Error [ERR_REQUIRE_ESM]: require() of ES Module /builds/daniel.dehennin/laboite-blog-front/.releaserc.js from /usr/local/lib/node_modules/semantic-release/node_modules/cosmiconfig/dist/loaders.js not supported.
.releaserc.js is treated as an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which declares all .js files in that package scope as ES modules.
Instead rename .releaserc.js to end in .cjs, change the requiring code to use dynamic import() which is available in all CommonJS modules, or change "type": "module" to "type": "commonjs" in /builds/daniel.dehennin/laboite-blog-front/package.json to treat all .js files as CommonJS (using .mjs for all ES modules instead).
The solution is to rename the semantic-release
configuration file to .releaserc.cjs
.
Unfortunately, the current templates/Semantic-release.yaml
template limit the job to only .js
configuration files.
Edited by Daniel Dehennin