wrong babel cache using filepath as entry point
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- build-system
Línea de trabajo
Comienza con la lógica vinculada de cachedIdentifier en src/index.js de babel-loader y revisa cómo babel-plugin-transform-define recibe o resuelve la ruta de su archivo de configuración. Reproduce el caso de caché obsoleto cambiando el archivo referenciado y define la finalización como la invalidación de la caché cuando cambie el contenido de ese archivo sin eliminar manualmente node_modules/.cache/babel-loader.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hey folks, thanks for creating this library, I found it very useful.
I'm opening this issue because I found an edge case related to how babel-loader cache works.
babel-loader uses a prop called cachedIdentifier. This property determinate if it is necessary or not re-run babel-loader process.
https://github.com/babel/babel-loader/blob/b29516266912fbc50120155fee00efb1b0a19f59/src/index.js#L61
The point here is that it reads the content of the .babelrc. All is okay.
The edge case is related with this:
{
"plugins": [
["transform-define", "./path/to/config/file.js"]
]
}
If you use babel-plugin-transform-define specifying a file path, and then you modify the content of the file, in the next babel-loader it will be determinate that a new run is not necessary, so it will be served the last result from the cache that it's different from your expected result!
Literally, I was thinking I was crazy until discovering this.
The fix could be easiest as determinate the new way to calculate cachedIdentifier. The problem is, because in my case I'm under Next.js, that's is not something easy to do because Next.js internal doesn't contemplate this modification.
Ideally, we should do that transparently adding a bit of code inside babel-plugin-transform-define to detect the edge case, but not sure if we can do that, need to investigate around babel-loader API inside a plugin.
My current workaround is remove the cache before init the process:
rm -rf node_modules/.cache/babel-loader && npm run dev
but obviously, this is a very bad solution and slow.
any idea? 🙂
- Lenguaje dominante
- JavaScript
- Estrellas
- 242
- Forks
- 29
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FormidableLabs/babel-plugin-transform-define
-
OptionalMemberExpression?Abiertoenhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
unverified
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
FormidableLabs/babel-plugin-transform-define#40 · 1 comentario ·
Todos los issues de FormidableLabs/babel-plugin-transform-define
Issues similares
-
external-plugin external-plugin-canvas needs-review:MEDIUM ready-for-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
github/awesome-copilot#5153 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
sallowayma-git/IELTS-practice#248 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
SecureBananaLabs/bug-bounty#13365 ·
Los mantenedores suelen responder en 4 días