Saya membuat Ionic
aplikasi menggunakan es6 modules
, TypeScript
dan SystemJS
sebagai pemuat modul. Ini adalah pengaturan saya:
tsconfig.json:
{
"compilerOptions": {
...
"target": "es5",
"module": "system",
...
}
}
index.html:
<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script>System.import('js/app.js')</script>
contoh skrip (TypeScript):
import {IConfig} from "./app-config";
export class ConfigLoader {
...
}
Semuanya berjalan dengan baik di Chrome. Namun, saat men-debug menggunakan Safari's Web Inspector, saya tidak dapat menempatkan breakpoint apa pun di skrip karena Web Inspector hanya menampilkan skrip yang dimuat langsung dari HTML (melalui tag skrip), dan bukan skrip yang dimuat oleh XHR (dalam kasus saya, oleh SystemJS) . Ini berarti saya tidak dapat men-debug skrip saya sendiri, yang tentu saja tidak dapat diterima.
Saya mencoba untuk mengatasi ini dengan menggunakan SystemJS seperti sebelumnya, tetapi juga menempatkan tag skrip di html, seperti:
<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="js/app-config.js"></script>
... other app scripts
<script>System.import('js/app.js')</script>
Namun, ini tidak berhasil, karena SystemJS tampaknya tidak senang dengan ini:
Panggilan System.register tidak valid. Panggilan Anonymous System.register hanya dapat dilakukan oleh modul yang dimuat oleh SystemJS.import dan tidak melalui tag skrip.
Bagaimana cara menggunakan SystemJS dan pada saat yang sama memiliki kemampuan untuk melakukan debug di Safari? Saya mencari solusi yang sedikit lebih canggih daripada 'letakkan pernyataan debugger di setiap skrip' ...
debugger
kata kunci JS