6

Source maps are showing up in the JavaScript bundleIE11角CLI光源分佈不工作

採用了棱角分明,CLI 1.0和角度4,我無法得到源地圖的工作,儘管在捆綁的JavaScript有//# sourceMappingURL=main.bundle.js.map。有沒有人知道一個解決方案,以獲得IE-11中的源代碼工作?通常這不會是一個大問題,我只需切換到Firefox或Chrome。但是我正在用Office-js api開發Excel加載項,並且它使用嵌入式IE11瀏覽器來顯示加載項,所以我堅持使用它。

我tsconfig.json:

{ 
    "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

只是一種預感,但是可以用這種方式縮小//#以縮小內容,以致進行縮小的內容共享導致錯誤的行。例如 - > //#這裏是上面的文件結尾 var thisVarsNowInTheCommentButFromAnotherFile .. –

+0

這是一個很好的想法,但我不認爲這就是發生在這裏的事情。該屏幕截圖來自運行應用程序時的調試器,並以最終(開發)形式顯示已捆綁的文件。但編譯prod時可能會遇到問題。 – Jolleyboy

+0

@Jolleyboy你有沒有想過這個問題?我有類似的配置,源地圖停止工作。 Chrome的作品,IE沒有。謝謝。 –

回答

1

的問題是,有在捆綁的文件的多個//#sourceMappingURL意見。爲了解決這個問題,你可以使用source-map-loader作爲Webpack來提取這些註釋並將它們提供給webpack devtool以創建一個主源圖文件。然後在捆綁結束時鏈接。現在IE11預計只有一個//#sourceMappingURL評論,而且事情很順利。

這是我如何做的:

  1. I ejected from the Angular-CLI警告,這踢你出了角CLI的,讓你負責管理自己的WebPack配置,等等。這是不可逆轉的。 ng eject
  2. npm install source-map-loader
  3. 我編輯我的WebPack config來補充一點:
{ 
    //... 
    devtool: 'inline-source-map', 
    module: { 
    rules: [ 
     //... 
     { 
     test: /\.js$/, 
     use: ["source-map-loader"], 
     exclude: [/node_modules/], 
     enforce: "post" 
     } 
    ] 
    } 
} 

有了這個設置,我可以用在F12工具斷點,使用sourcemaps。

如果您想進一步改進堆棧跟蹤(如Chrome一樣),您可以使用stacktrace.js來創建框架並將它們與源代碼映射進行轉換。這有點痛苦,而且解決方案太長,無法發佈到這裏

+0

可能有用的是提及[ng eject是什麼(即**打破了CLI **)](https://github.com/angular/angular-cli/issues/6302#issuecomment-301225384)for不熟悉它的人將其複製粘貼到終端中,然後運行,然後立即嚇壞了。 – msanford

+1

@msanford良好的通話 – Jolleyboy