Less.js: Numéros de ligne incorrects sur les sélecteurs de source-map - Chrome signale la position du premier élément, pas du dernier élément

Créé le 14 août 2013  ·  5Commentaires  ·  Source: less/less.js

Le moins suivant pointerait vers la ligne de html>body form bien que la définition soit explicitement pour input .
Cependant, cela fonctionnerait correctement lors de l'utilisation de l'opérateur & , mais il est difficile de changer toutes les définitions de moins comme celle-ci

html>body form  {

    input {
        color: cyan !important;
    }

    & input {
        background: yellow !important;
    }
}

line bug

Je pense que cela peut être étendu à d'autres opérateurs pris en charge en moins, mais jamais moins, que ce soit les opérateurs vides ou tous les opérateurs doivent être pris en charge correctement par les cartes source, car il s'agit de moins de code valide.

bug medium priority

Commentaire le plus utile

Remarque : la solution de contournement à partir de #1715 consiste à contrôler et à cliquer sur la propriété et non sur le sélecteur.
note 2: chrome ne le corrigera pas, il faudrait donc l'aborder en moins, probablement en trouvant le dernier index d'élément ? dans un sélecteur

Tous les 5 commentaires

Je pense que c'est parce que moins marque en fait différentes parties des sélecteurs provenant de différents endroits .. donc il indique à Chrome que la première partie du sélecteur vient de la ligne 3 et la deuxième partie de la ligne 9. Quand moins utilise & il casse en fait l'implémentation et moins n'indique à chrome que la 2ème partie.

Cependant, étant donné que les informations dans Chrome sont de toute façon très sommaires, nous ne devrions probablement afficher que les informations de la dernière partie du sélecteur.

ce bug est maintenant dans les bugs de chrome : https://code.google.com/p/chromium/issues/detail?id=287382

note à moi-même : pourrait être résolu en remplaçant les informations de fichier avant que chaque chemin ne soit affiché. Il faut également penser aux extensions où le sélecteur du milieu est remplacé - le chemin est créé à cause de l'extension, donc l'extension est la chose importante.

marquer ce bas dès maintenant car vous pouvez toujours faire défiler vers le bas.. cela vous donne au moins un pointeur.. à moins que @dotnetwise vous ayez une raison pour laquelle cela pose un gros problème.

Remarque : la solution de contournement à partir de #1715 consiste à contrôler et à cliquer sur la propriété et non sur le sélecteur.
note 2: chrome ne le corrigera pas, il faudrait donc l'aborder en moins, probablement en trouvant le dernier index d'élément ? dans un sélecteur

J'ai testé l'exemple de code 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;
}
}

J'ai trouvé que le problème ne se produit pas seulement dans Chrome mais aussi dans Firefox. Ensuite, j'ai essayé de compiler le code avec gulp-less et gulp-sourcemap (où je m'attends à ce que gulp-sourcemap utilise un générateur de sourcemap différent). La construction de gulp n'a pas non plus résolu le problème.
Lorsque je compile le même code avec sass, le sourcemap généré pointe correctement sur 4 dans Chrome et FF.

D'un autre côté, Less a les bons numéros de ligne à un moment donné (avec --line-numbers=comments):

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

Oui, mais uniquement pour les "règles imbriquées"

Si vous imbriquez quoi que ce soit dans une grande règle, toutes les lignes de la carte source pointent vers son sommet.

Cette page vous a été utile?
0 / 5 - 0 notes