commitizen / commitizen/cz-cli

Consider using npm module name instead of relative path in adapter config generated by commitizen init

Abierto
#469 6 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
17.5k
Forks
566
Merge medio
8 h 16 min
PR fusionados (30 d)
1

Descripción

The setup instructions [in the readme][repo-commitizen-friendly] use the module name of the adapter (i.e. `cz-conventional-changelog`), but the actual config generated by `commitizen init` uses a relative path to the module:

https://github.com/commitizen/cz-cli/blob/d5e24245dda078464d8c964f5d052bcad1da14f5/src/commitizen/adapter.js#L35-L41

According to [the readme][repo-commitizen-friendly]:

> commitizen.path is resolved via require.resolve and supports
>
> - **npm modules**
> - directories relative to process.cwd() containing an index.js file
> - file base names relative to process.cwd() with js extension
> - full relative file names
> - absolute paths.

One downside of using a relative path is that developers cannot use their global commitizen install to create a commit if they have not yet run `npm install` in the repo, because this results in an error:
```
Error: Could not resolve /Users/mickdekkers/Projects/foo/node_modules/cz-conventional-changelog.
Cannot find module '/Users/mickdekkers/Projects/foo/node_modules/cz-conventional-changelog'
```

This change should fix the issue, although I'm not sure whether it would be considered breaking:

```diff js
let commitizenAdapterConfig = {
config: {
commitizen: {
- path: `./node_modules/${adapterNpmName}`
+ path: adapterNpmName
}
}
};
```

[repo-commitizen-friendly]: https://github.com/commitizen/cz-cli#making-your-repo-commitizen-friendly

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.