我在 D3 4.0 和 Ionic2/Angular2 项目中的导入语句遇到问题。
我相信我使用了正确的导入语句,并且一切都编译好了。
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
!