6

Source maps are showing up in the JavaScript bundlenguồn IE11 góc-CLI các bản đồ về không làm việc

Sử dụng góc-CLI 1.0 và góc 4, tôi không thể để có được bản đồ nguồn làm việc mặc dù có //# sourceMappingURL=main.bundle.js.map trong JavaScript kèm. Có ai biết một công việc xung quanh để có được sourcemaps làm việc trong IE-11? Thông thường đây không phải là vấn đề lớn, tôi chỉ chuyển sang firefox hoặc chrome. Nhưng tôi đang phát triển một bổ trợ Excel với api Office-js, và nó sử dụng trình duyệt IE11 được nhúng để hiển thị bổ trợ, vì vậy tôi bị mắc kẹt với nó.

tsconfig.json của tôi:

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": "src", 
    "sourceMap": true, 
    "declaration": false, 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "pretty": true, 
    "target": "es5", 
    "typeRoots": [ 
     "node_modules/@types" 
    ], 
    "lib": [ 
     "es2017", 
     "dom" 
    ] 
    } 
} 

tsconfig.app.json:

{ 
    "extends": "../tsconfig.json", 
    "compilerOptions": { 
    "outDir": "../out-tsc/app", 
    "module": "es2015", 
    "baseUrl": "", 
    "types": [] 
    }, 
    "exclude": [ 
    "test.ts", 
    "**/*.spec.ts" 
    ] 
} 
+0

Chỉ cần linh cảm nhưng có thể phù hợp với // # được giảm thiểu theo cách mà nội dung được rút gọn tiến hành chia sẻ một dòng gây ra lỗi. Ví dụ -> // # ở đây là phần cuối của tệp ở trên var thisVarsNowInTheCommentButFromAnotherFile .. –

+0

Đó là một suy nghĩ tốt, nhưng tôi không nghĩ đó là những gì đang xảy ra ở đây. Ảnh chụp màn hình đó là từ trình gỡ lỗi trong khi chạy ứng dụng và đang hiển thị tệp đã được gộp trong biểu mẫu cuối cùng (dev) của nó. Đó có thể là một vấn đề khi biên dịch cho sản phẩm mặc dù. – Jolleyboy

+0

@Jolleyboy là bạn đã bao giờ có thể tìm ra vấn đề? Tôi có bản đồ cấu hình và nguồn tương tự chỉ dừng hoạt động. Chrome hoạt động, IE thì không. Cảm ơn. –

Trả lời

1

Vấn đề là có nhiều //#sourceMappingURL bình luận trong các tập tin kèm. Để khắc phục điều này, bạn có thể sử dụng source-map-loader cho Webpack để trích xuất các nhận xét đó và đưa chúng vào webpack devtool để tạo tệp bản đồ nguồn chính. Điều này sau đó được liên kết ở cuối gói. Hiện tại, chỉ có một chú thích //#sourceMappingURL trong tệp như IE11 mong đợi và mọi thứ hoạt động hiệu quả.

Sau đây là cách tôi đã làm nó:

  1. I ejected from the Angular-CLICảnh báo, đây đá bạn ra khỏi góc-CLI, làm cho bạn trách nhiệm quản lý cấu hình webpack của riêng bạn, trong số những thứ khác. Điều này là không thể đảo ngược. ng eject
  2. npm install source-map-loader
  3. tôi sửa cấu hình webpack của tôi để thêm video này:
{ 
    //... 
    devtool: 'inline-source-map', 
    module: { 
    rules: [ 
     //... 
     { 
     test: /\.js$/, 
     use: ["source-map-loader"], 
     exclude: [/node_modules/], 
     enforce: "post" 
     } 
    ] 
    } 
} 

Với thiết lập này, tôi có thể sử dụng breakpoint trong các công cụ F12, sử dụng sourcemaps.

Nếu bạn muốn tiến xa hơn một bước và cải thiện stacktraces của bạn (như Chrome), bạn có thể sử dụng stacktrace.js để tạo khung và dịch chúng bằng các bản đồ nguồn. Đây là một chút đau đớn, và giải pháp quá dài để đăng ở đây

+0

Nó có thể hữu ích để đề cập đến [những gì 'ng eject' hiện (cụ thể là, ** phá vỡ CLI **)] (https://github.com/angular/angular-cli/issues/6302#issuecomment-301225384) cho những người không quen thuộc với nó và sao chép-dán nó vào một thiết bị đầu cuối, chạy nó, và ngay lập tức freak ra. – msanford

+1

@msanford cuộc gọi tốt – Jolleyboy

Các vấn đề liên quan