Django-compressor: Prise en charge des cartes source js

Créé le 4 sept. 2013  ·  20Commentaires  ·  Source: django-compressor/django-compressor

Les cartes source sont un très bon outil pour déboguer quelque chose sur du code compressé à l'aide de Chrome Dev Tools. Il existe de nombreux outils qui les génèrent, notamment la fermeture de Google qui est déjà prise en charge par django-compressor.

Voici quelques informations : https://github.com/ryanseddon/source-map/wiki/Source-maps%3A-languages ,-tools-and-other-info

feature

Commentaire le plus utile

les cartes sources sont également utilisées par sentinelle https://www.getsentry.com/docs/sourcemaps/

Tous les 20 commentaires

Je suis prêt à l'implémenter mais j'aimerais savoir s'il y a un intérêt pour cette fonctionnalité.

Jusqu'à présent, j'ai lu le code pour avoir une idée de ce qui est nécessaire pour accomplir cela.

Tout d'abord, côté balises de template, il y a au moins deux options pour activer les sources maps, un paramètre pour le compresseur ou un autre compresseur : {% compress js sourcemap %} ou {% compress js-sourcemaps %}

Ensuite, si l'option Source Maps est activée, le compresseur doit vérifier que tous les morceaux sont des fichiers car vous ne pouvez pas générer de sources map pour inline (je pense, pas tout à fait sûr).

Enfin, peut-être la partie la plus délicate, un moteur de compression capable de gérer une liste de fichiers et de générer le js compressé et le fichier de carte source est nécessaire.

J'aimerais avoir des commentaires à ce sujet pour savoir si je suis sur la bonne voie ou si j'ai tout faux.

Cela peut être possible avec la chaîne d'outils existante. J'ai réussi à obtenir une prise en charge de base de sourceMapURL pour CSS via SASS.

par exemple https://gist.github.com/Nagyman/6542739

C'est très préliminaire ; certaines limitations connues sont mentionnées dans les commentaires.

Je suis intéressé. Cela faciliterait le débogage rapide du code de mise en scène.
Une avance sur cette fonctionnalité ?

Oui, je travaille actuellement sur cette fonctionnalité.

@sicarrots J'utilise des cartes source lorsque settings.DEBUG puisque le compresseur ne fait que traverser les balises d'origine, mais il semble assez difficile de les faire fonctionner après la concaténation et la relocalisation. Comment l'abordez-vous ?

J'ai un certain succès en expérimentant avec Compressor et uglify.js. Pour l'instant, j'ai sous- JsCompressor le output pour contourner l'ensemble de la chaîne filtre/concat/filtre et n'utiliser Uglify que pour toutes les activités (concat, compresser, générer des cartes source).

les cartes sources sont également utilisées par sentinelle https://www.getsentry.com/docs/sourcemaps/

@fetzig Exactement ma raison d'être

@Kos Auriez -vous la gentillesse de coller du code à des fins d'inspiration ? Merci B)

C'est ce que j'ai fini par utiliser : https://gist.github.com/Kos/9270494 (j'ai une compression hors ligne en production et aucune compression en développement)

La prochaine étape serait d'autoriser l'utilisation de {% compress js %} pour le JsCompressor normal (car la chaîne filter/concat/filter est parfois utile) et de configurer quelque chose comme {% compress uglify %} pour utiliser mon classe personnalisée, mais je n'ai pas trouvé de moyen de le faire par configuration.

edit: :bières: :-)

:bières: @Kos !

+1 pour cette fonctionnalité !

+1 J'aimerais aussi cette fonctionnalité. Il est très pratique de pouvoir déboguer des fichiers compressés JS en production. Les erreurs de sentinelle n'ont pas beaucoup de sens sinon.

+1 pour la fonctionnalité, absolument requis pour les erreurs Sentry :)

+1 pour les cartes source js et css

Je voudrais voir js/ES6/coffee (même TypeScript) et css/sass/less source map
??

Compress ne prend-il toujours pas en charge la fonction de mappage source ?

Non, il ne prend toujours pas en charge cette fonctionnalité. Vous êtes invités à soumettre un PR mettant cela en œuvre.

Il est toujours possible d'implémenter une solution "hackish", par exemple :
https://bitbucket.org/imposeren/tabletop-planning/src/7d551806cfee2c5493b7273e40c5448aec480544/tabletop_tools/compressor_filters.py?at=master

Une meilleure solution est nécessaire pour rendre les relations publiques...

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