Less.js: Números de línea incorrectos en los selectores del mapa de origen: Chrome informa la posición del primer elemento, no del último elemento

Creado en 14 ago. 2013  ·  5Comentarios  ·  Fuente: less/less.js

El siguiente menos apuntaría a la línea de html>body form aunque la definición era explícitamente para input .
Sin embargo, esto funcionaría correctamente cuando se usa el operador & , pero es una molestia cambiar todas las definiciones menos como esa

html>body form  {

    input {
        color: cyan !important;
    }

    & input {
        background: yellow !important;
    }
}

line bug

Creo que esto puede extenderse a otros operadores admitidos en menos, pero sin embargo, ya sea vacío o cualquier operador debe ser admitido correctamente por los mapas de origen, ya que es menos código válido.

bug medium priority

Comentario más útil

nota: la solución alternativa de # 1715 es controlar y hacer clic en la propiedad, no en el selector.
nota 2: Chrome no lo solucionará, por lo que tendría que abordarse en menos, probablemente encontrando el último índice de elemento. en un selector

Todos 5 comentarios

Creo que esto se debe a que less marca diferentes partes de los selectores que vienen de diferentes lugares ... por lo que le dice a Chrome que la primera parte del selector proviene de la línea 3 y la segunda parte de la línea 9. Cuando less usa & en realidad rompe la implementación y menos solo le dice a Chrome sobre la segunda parte.

Sin embargo, dada la información en Chrome es muy incompleta de todos modos, probablemente solo deberíamos mostrar información de la última parte del selector.

este error ahora está en los errores de cromo: https://code.google.com/p/chromium/issues/detail?id=287382

nota para mí mismo: podría resolverse anulando la información del archivo antes de que se genere cada ruta. También es necesario pensar en las extensiones donde se reemplaza el selector central: la ruta se crea debido a la extensión, por lo que la extensión es lo importante.

marcando este bajo como ahora, siempre puede desplazarse hacia abajo ... al menos le da un puntero ... a menos que @dotnetwise tenga una razón por la que esto está causando un gran problema.

nota: la solución alternativa de # 1715 es controlar y hacer clic en la propiedad, no en el selector.
nota 2: Chrome no lo solucionará, por lo que tendría que abordarse en menos, probablemente encontrando el último índice de elemento. en un selector

He probado el código de ejemplo de: http://stackoverflow.com/questions/27983598/css-source-maps-doesnt-report-the-correct-line-when-using-nested-selectors

#main {
max-width: 500px;
color: white;
.sub-container {
color: blue;
}
}

Descubrí que el problema no solo ocurre en Chrome sino también en Firefox. Luego intenté compilar el código con gulp-less y gulp-sourcemap (donde espero que gulp-sourcemap use un generador de sourcemap diferente). La construcción de trago tampoco resolvió el problema.
Cuando compilo el mismo código con sass, el mapa fuente generado apunta correctamente a 4 tanto en Chrome como en FF.

Por otro lado, Less tiene los números de línea correctos en algún momento (con --line-numbers = comments):

/* line 1, /t.less */
#main {
  max-width: 500px;
  color: white;
}
/* line 4, /t.less */
#main .sub-container {
  color: blue;
}

Sí, pero solo para las "reglas anidadas"

Si anida algo en una regla grande, todas las líneas del mapa de origen apuntarán a su parte superior.

¿Fue útil esta página
0 / 5 - 0 calificaciones