Widziałem .map
pliki dla TypeScript. Chcę wiedzieć, do czego służą te pliki. Czy zawierają odniesienia do innych plików, do których istnieją odniesienia w pliku .ts?
typescript
Sachin Kainth
źródło
źródło
.map
plików w witrynie internetowej?Do praktycznych celów debugowania:
Mapa źródłowa umożliwia ustawienie punktu przerwania w pliku TypeScript , a następnie debugowanie kodu. Można to zrobić w Chrome i Firefox. Nieco mylące zachowanie debugera w Chrome polega na tym, że po osiągnięciu punktu przerwania plik „.js” jest faktycznie wyświetlany (zatrzymywany w punkcie przerwania).
Od dzisiaj debugger Firefoksa będzie wyświetlał rzeczywisty plik TypeScript, gdy się zepsuje. Zobacz poniższe odniesienie:
http://www.gamefromscratch.com/post/2014/05/27/TypeScript-debugging-in-Visual-Studio-with-IE-Chrome-and-Firefox-using-Source-Maps.aspx )
(pokazuje to również, jak można skonfigurować program Visual Studio do tworzenia mapy źródłowej)
Aby zrozumieć, jak działa mapa źródłowa, możesz przeczytać sekcję „Anatomia mapy źródłowej” tutaj:
https://www.html5rocks.com/en/tutorials/developertools/sourcemaps/
źródło
Istnieją dwa typy
.map
plików, które są najczęściej używane w programie Typescript. Jedna to Source Map (.js.map
), a druga to Declaration Map (.d.ts.map
). Oba szczegółowo wyjaśnię po kolei.Mapy źródłowe:
.js.map
.js.map
Pliki mapy źródłowej ( ) zawierają definicje mapowań, które łączą każdy fragment wygenerowanego kodu JavaScript z powrotem do określonej linii i kolumny odpowiedniego pliku Typescript. Definicje mapowania w tych plikach są w formacie JSON.Gdy mapy źródłowe są włączone, podczas debugowania Visual Studio Code i Chrome DevTools pokażą Twój kod Typescript zamiast wygenerowanego złożonego kodu JavaScript.
Dlaczego warto korzystać z map źródłowych?
Na przykład w aplikacjach produkcyjnych używamy narzędzi do kompilacji, takich jak Rollup, aby usunąć martwy kod, Prepack w celu wyeliminowania i zastąpienia kodu obliczeniami, które można ocenić w czasie kompilacji, a nie w czasie wykonywania, a następnie minimalizujemy kod za pomocą Uglify. Nie wspominając o złożoności już transponowanego kodu Javascript. Zatem wynikowy kod może znacznie różnić się od kodu, który faktycznie napisałeś. Dlatego zaleca się używanie map źródłowych, bardzo ułatwia to debugowanie, ponieważ można przejść przez oryginalny kod źródłowy.
Narzędzia do monitorowania procesów, monitorowania błędów, rejestrowania i śledzenia stosu, takie jak Sentry, Bugsnag, PM2, Winston, również używają map źródłowych do mapowania wierszy i kolumn w śladach stosu wyjątków JavaScript z powrotem do Typescript.
Jak korzystać z map źródłowych?
Możesz włączyć mapy źródłowe, używając
--sourceMap
opcji podczas kompilacji lub określając jecompilerOptions
wtsconfig.json
pliku projektu, na przykład:{ "compilerOptions": { ... "sourceMap": true, "outDir": "./out" } }
Uwaga dotycząca bezpieczeństwa map źródłowych:
Jeśli chcesz uzyskać pewne bezpieczeństwo, zaciemniając kod przeglądarki, możesz wykluczyć mapy źródłowe z kodu przeglądarki w aplikacji produkcyjnej.
Mapy deklaracji:
.d.ts.map
.d.ts.map
Pliki deklaracji map ( ), znane również jako mapy źródeł deklaracji, zawierają definicje odwzorowań, które łączą każdą deklarację typu wygenerowaną w.d.ts
plikach z powrotem do oryginalnego pliku źródłowego (.ts
). Definicje mapowania w tych plikach są w formacie JSON.Jest to pomocne w nawigacji po kodzie. Będziesz mógł korzystać z funkcji edytora, takich jak „Przejdź do definicji” i Zmień nazwę, aby w przejrzysty sposób nawigować i edytować kod między projektami podrzędnymi, gdy podzielisz duży projekt na kilka małych projektów przy użyciu odniesień do projektów.
Aby włączyć mapy deklaracji, określ następujące dwie opcje w
tsconfig.json
pliku projektu:{ "compilerOptions": { ... "declaration": true, "declarationMap": true } }
Otóż to! Mam nadzieję, że to pomoże.
źródło