Django-compressor: Suporte para mapas de origem js

Criado em 4 set. 2013  ·  20Comentários  ·  Fonte: django-compressor/django-compressor

Os mapas de origem são uma ferramenta muito boa para depurar algo em código compactado usando as ferramentas de desenvolvimento do Chrome. Existem muitas ferramentas que os geram, incluindo o fechamento do Google que já é suportado pelo django-compressor.

Aqui estão algumas informações: https://github.com/ryanseddon/source-map/wiki/Source-maps%3A-languages , -tools-and-other-info

feature

Comentários muito úteis

mapas de origem também são usados ​​pelo sentry https://www.getsentry.com/docs/sourcemaps/

Todos 20 comentários

Estou disposto a implementá-lo, mas gostaria de saber se há algum interesse neste recurso.

Até agora, li o código para ter uma ideia do que é necessário para fazer isso.

Primeiro, no lado das tags de modelo, existem pelo menos duas opções para ativar os mapas de origem, um parâmetro para o compressor ou um compressor diferente: {% compress js sourcemap %} ou {% compress js-sourcemaps %}

Então, se a opção de mapas de origem estiver ativada, o compressor deve verificar se todos os pedaços são arquivos porque você não pode gerar mapas de origem para inline (eu acho, não completamente certo).

Finalmente, talvez a parte mais complicada, é necessário um backend de compactador que pode lidar com uma lista de arquivos e produzir o js compactado e o arquivo de mapa de origem.

Adoraria receber feedback sobre isso para saber se estou no caminho certo ou se entendi tudo errado.

Isso pode ser possível com o conjunto de ferramentas existente. Consegui suporte básico de sourceMapURL para CSS via SASS.

por exemplo, https://gist.github.com/Nagyman/6542739

Isso é muito preliminar; algumas limitações conhecidas são mencionadas nos comentários.

Estou interessado. Seria um código de teste de depuração fácil e rápido.
Algum avanço neste recurso?

Sim, estou trabalhando neste recurso.

@sicarrots Estou usando mapas de origem quando settings.DEBUG pois o compressor apenas passa pelas tags originais, mas parece muito complicado fazê-las funcionar após a concatenação e realocação. Como você está abordando isso?

Estou tendo algum sucesso experimentando com Compressor e uglify.js. Por enquanto, criei uma subclasse de JsCompressor e substituí output para contornar toda a cadeia de filtro / concat / filtro e só uso Uglify para todas as atividades (concat, compactar, gerar mapas de origem).

mapas de origem também são usados ​​pelo sentry https://www.getsentry.com/docs/sourcemaps/

@fetzig Exatamente meu raciocínio por trás disso

@Kos Você poderia gentilmente colar algum código para fins de inspiração? Obrigado B)

Isso é o que acabei usando: https://gist.github.com/Kos/9270494 (eu tenho compactação offline em produção e nenhuma compactação em desenvolvimento)

O próximo passo seria permitir o uso de {% compress js %} para o JsCompressor normal (porque a cadeia de filtro / concat / filtro às vezes é útil) e configurar algo como {% compress uglify %} para usar meu classe personalizada, mas não descobri uma maneira de fazer isso pela configuração.

editar:: cervejas: :-)

: cervejas: @Kos!

1 para esse recurso!

1 Eu também gostaria deste recurso. É muito útil poder depurar arquivos compactados JS em produção. Erros de sentinela não fazem muito sentido se não.

+1 para o recurso, absolutamente necessário para erros de Sentry :)

+1 para mapas de origem js e css

Eu gostaria de ver o mapa de origem js / ES6 / coffee (até mesmo TypeScript) e css / sass / less
🍻

O Compress ainda não oferece suporte ao recurso de mapas de origem?

Não, ainda não oferece suporte a esse recurso. Você é bem-vindo para enviar um PR implementando isso.

Ainda é possível implementar alguma solução "hackeada", por exemplo:
https://bitbucket.org/imposeren/tabletop-planning/src/7d551806cfee2c5493b7273e40c5448aec480544/tabletop_tools/compressor_filters.py?at=master

É necessária uma solução melhor para fazer PR ...

Esta página foi útil?
0 / 5 - 0 avaliações