diffplug / diffplug/spotless

Investigate Javenode and/or JNpm

Abierto
#934 0 comentarios 4 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Java
Estrellas
5.6k
Forks
559
Merge medio
1 d 14 h
PR fusionados (30 d)
43

Descripción

Right now, we integrate with node.js formatting tasks by finding a Node.js and NPM installation on the host machine

- using npm to install the required formatter, usually prettier, which is slow (#766)
- [JNPM](https://github.com/OrienteerBAP/JNPM) might be able to do this better
- starting a localhost server in java, and another in node.js, and passing strings back and forth between them
- [Javenode](https://github.com/caoccao/Javenode) would allow us to do this in-process.
- Upside: fancy [module intercepting](https://github.com/diffplug/spotless/issues/556#issuecomment-919613345) which could cooperate with something like JNPM
- Upside: passing strings within-process would be faster, but this is minor
- Upside: don't need to futz with Spotless finding a node.js installation
- Downside: can't futz with Spotless using a specific node.js installation which might match other non-java tooling

I don't plan to work on any of this, but I think #766 is a big problem. If anyone wants to experiment with the above, they are very welcome to! An important part for getting a PR merged will be a real-world project, where you can say "it was X seconds before, and it's Y seconds now". I don't want to swap things just to swap them.

If there's an easy way to keep the old mechanism and the new mechanism at the same time, that might be nice, but it's fine to remove the old mechanism as part of the PR too. Maybe the new mechanism dominates the old, and if it doesn't we can figure out how to get them to coexist after the fact.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Revisa #766 y los proyectos vinculados Javenode y JNPM para comprender el flujo de trabajo actual del formateador de Node.js y las posibles alternativas. Una investigación completa debe incluir una comparación en condiciones reales de los mecanismos existentes y propuestos, informar de los tiempos antes y después, y explicar si los enfoques antiguo y nuevo deberían coexistir.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, node.js
Área
build-system, tooling
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.