1

我有一個角2項目,該項目,運行時,給出了大量404關於各種節點模塊的源映射的,如下所示:獲取404爲節點模塊源映射,同時運行的角2項目

... 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/abstract_form_group_directive.js.map 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/form_array_name.js.map 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/form_control_name.js.map 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/form_group_directive.js.map 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/form_group_name.js.map 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/form_control_directive.js.map 
[1] 16.07.28 07:53:19 404 GET /node_modules/systemjs/dist/form_group_directive.js.map 
... 

我個人並沒有在我的代碼中引用它們(至少不是直接)。當我搜索它們時,我發現它們幾乎總是在它們各自的節點模塊內。

例如:

form_group_directive.js.map是在form_group_directive.js最後一行引用如下所示:

//# sourceMappingURL=form_group_directive.js.map 

form_group_directive.js本身位於node_modules/@angular/forms/src/directives/reactive_directives/form_group_directive.js

進一步展望我的代碼下確定如何form_group_directive.js.map可能被引用,我找到以下內容:

在我的組成部分之一,我已經進口REACTIVE_FORM_DIRECTIVES如下:

import { 
FORM_DIRECTIVES, FORM_PROVIDERS, FormGroup, REACTIVE_FORM_DIRECTIVES, 
FormControl, Validators} from "@angular/forms"; 
... 
@Component({ 
    selector: "search-form", 
    templateUrl: "app/search-form.component.html", 
    styleUrls: ["app/search-form.component.css"], 
    directives: [FORM_DIRECTIVES, REACTIVE_FORM_DIRECTIVES], 
    providers: [FORM_PROVIDERS] 
}) 

分量模板,我用的是formGroup指令如下:

... 
<form id="search-criteria" [formGroup]="form" (ngSubmit)="onSubmit(form.value)"> 
.... 

跟蹤在@angular/formsREACTIVE_FORM_DIRECTIVES導致文件directives.d.tsnode_modules/@angular/forms/src/directives.d.ts,它有這條線:

... 
export { FormGroupDirective } from './directives/reactive_directives/form_group_directive'; 
... 

因此,j s文件路徑似乎得到正確解決。但是,它指向的源映射文件沒有。

看來他們正在錯誤的地方搜索。任何人都知道如何解決此問題?

+0

請張貼在你所引用的那些文件的記錄。 – FDavidov

+0

我個人並沒有在我的代碼中引用它們。當我搜索它們時,我發現它們幾乎總是在它們各自的節點模塊內。例如:'ng_model_group.js.map'在'ng_model_group.js'的最後一行被引用爲'// nodeModules> @angular> forms> esm> src> directives'下的//#sourceMappingURL = ng_model_group.js.map' – Bahaa

+0

但是..文件的路徑是否正確?我的意思是,如果你輸入命令'cat/node_modules/systemjs/dist/ng_model_group.js.map'你會看到文件的內容嗎? – FDavidov

回答

1

有幾個缺陷:

的templateUrl相對被裝載到dev的服務器,而不是相對於包的根。

使用要求作爲模板的解決方法與非靜態資產:

template: require('app/search-form.component.html') 

一些組件具有獲得從根擔任,而不是相對於包(node_modules靜態資產/ package_path/path/to/assets),捆綁商也沒有選擇它。

基本上,沒有體面的方式來捆綁第三方庫,不內聯他們的HTML/CSS。目前我們使用一些正則表達式來計算ts文件,但它有點冒險......它可能會取代它不應該的東西。

雖然在tsconfig中添加了mapRoot屬性,但它看起來像TS2.0 +中的更改阻止了相對sourceMapUrl的生成。JSON

參考