util.join() doesn't handle absolute path on Windows correctly
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- devtools
Línea de trabajo
Comienza en lib/util.js, en util.join() y util.isAbsolute(), usando como reproducer la ruta con letra de unidad de Windows indicada. Comprueba cómo ambos puntos de entrada tratan rutas como F:\Projects\... junto con rutas precedidas por una barra. Se considera terminado cuando las rutas absolutas de Windows se reconocen y no se vuelven a unir repetidamente a través de la pipeline del cargador de source-map; ejecuta después las pruebas existentes del proyecto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We use the Webpack pipeline on Windows with sass-loader, postcss-loader, and css-loader. Then we found the generated source paths went crazy: F:\Projects\web-project-boilerplate\src\scss\index.scss just becomes F:/Projects/web-project-boilerplate/src/scss/F:/Projects/web-project-boilerplate/src/scss/F:/Projects/web-project-boilerplate/src/scss/index.scss.
As I followed the codebase in the pipeline, I noticed that the sass-loader use relative path, then the postcss-loader and css-loader turn to use absolute path for "sources" field in the sourceMap. In addition, the absolute path on Windows starts with a symbol of the disk driver, e.g. F: in our case. When it comes to sourceMap's util.join(), it only detects absolute path starts with /
https://github.com/mozilla/source-map/blob/c3a8f5a2a4cc7ac5bc6c06bc93745d3c57bd8860/lib/util.js#L228
So it joins multiple paths across the loaders.
Also, the util.isAbsolute doesn't deal with the Windows absolute path as well.
https://github.com/mozilla/source-map/blob/c3a8f5a2a4cc7ac5bc6c06bc93745d3c57bd8860/lib/util.js#L241
Appendix:
Here is a case of how expressjs test the absolute path:
exports.isAbsolute = function(path){
if ('/' === path[0]) return true;
if (':' === path[1] && ('\\' === path[2] || '/' === path[2])) return true; // Windows device path
if ('\\\\' === path.substring(0, 2)) return true; // Microsoft Azure absolute path
};
I'm not sure we need to handle the azure absolute path, but I would be better if we had window device path included.
Thanks
- Lenguaje dominante
- JavaScript
- Estrellas
- 3.7k
- Forks
- 370
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 mozilla/source-map
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
mozilla/source-map#530 ·
-
allow wasm to be bundled Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
mozilla/source-map#527 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
mozilla/source-map#524 · 6 comentarios ·
-
source map seems like not work, is there some hints from the perspective of source-map tool? Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
mozilla/source-map#516 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
mozilla/source-map#510 · 1 reacción ·
Todos los issues de mozilla/source-map
Issues similares
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Automattic/safe-publish#594 ·
-
内部文件键(绝对路径的 base64)泄漏到界面标签 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
dream-num/dsh-univer-office#104 ·
-
comp/dashboard invalid P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NousResearch/hermes-agent#121143 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
avniproject/avni-webapp#1811 ·
-
area/auroraboot area/webui bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100