Tôi đang tạo ra một Ionic
ứng dụng sử dụng es6 modules
, TypeScript
và SystemJS
như một bộ nạp mô-đun. Đây là thiết lập của tôi:
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>
tập lệnh mẫu (TypeScript):
import {IConfig} from "./app-config";
export class ConfigLoader {
...
}
Mọi thứ đều chạy tuyệt vời trong Chrome. Tuy nhiên, khi gỡ lỗi bằng Trình kiểm tra web của Safari, tôi không thể đặt bất kỳ điểm ngắt nào trong các tập lệnh vì Trình kiểm tra web chỉ hiển thị các tập lệnh được tải trực tiếp từ HTML (thông qua các thẻ tập lệnh) chứ không phải các tập lệnh được tải bởi XHR (trong trường hợp của tôi là SystemJS) . Điều này có nghĩa là tôi không thể gỡ lỗi các tập lệnh của riêng mình, điều này tất nhiên là không thể chấp nhận được.
Tôi đã cố gắng giải quyết vấn đề này bằng cách sử dụng SystemJS như trước đây, nhưng cũng đặt các thẻ script trong html, như sau:
<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>
Tuy nhiên, điều này không hoạt động, vì SystemJS có vẻ không hài lòng về điều này:
Cuộc gọi System.register không hợp lệ. Lệnh gọi System.register ẩn danh chỉ có thể được thực hiện bởi các mô-đun được tải bởi SystemJS.import chứ không phải thông qua các thẻ script.
Làm cách nào để sử dụng SystemJS và đồng thời có khả năng gỡ lỗi trong Safari? Tôi đang tìm kiếm một giải pháp phức tạp hơn một chút so với 'đặt một câu lệnh trình gỡ lỗi trong mỗi tập lệnh' ...
debugger
JS từ khóa