我在D3 4.0和Ionic2/Angular2項目中的導入語句有問題。d3 4.0 - 導入語句給出__moduleExports包裝
我相信我正在使用正確的導入語句,並且編譯所有內容。
import * as d3Request from 'd3-request';
export class HomePage {
constructor() {
d3Request.xml('assets/mysvg.svg')
.mimeType("image/svg+xml")
.get(function(error, xml) {
if (error) throw error;
document.body.appendChild(xml.documentElement);
});
}
}
被編譯到:
var d3Request$1 = unwrapExports(d3Request);
var d3Request$2 = Object.freeze({
default: d3Request$1,
__moduleExports: d3Request
});
...
d3Request$2.xml('assets/mysvg.svg')
.mimeType("image/svg+xml")
.get(function (error, xml) {
if (error) throw error;
document.body.appendChild(xml.documentElement);
});
然而,在運行時xml
功能上不存在d3Request$2.xml
。它只存在於d3Request$2.__moduleExports.xml
,但代碼不能編譯到那。是什麼賦予了?
我也試過import d3Request from 'd3-request'
這也編譯,但仍然無法正常工作。結果在:
var d3Request$1 = unwrapExports(d3Request);
...
d3Request$1.xml('assets/emojis/laughing.svg')
.mimeType("image/svg+xml")...
但是,這仍然不起作用,因爲d3Request$1
最終未定義。 d3Request.xml
存在,但代碼不能編譯,編譯爲d3Request$1.xml
!
試試這個:'''import * as d3 from'd3'; d3.request(...)''' – BuildingJarl
不,那不能編譯。 – parliament