2016-10-07 5 views
1

D3 4.0およびIonic2/Angular2プロジェクトのインポートステートメントに問題があります。d3 4.0 - importステートメントで__moduleExportsラッパーが指定されました

私は正しいimport文を使用していると思います。すべてがコンパイルされます。しかし、実行時にxml機能がd3Request$2.xml上に存在しない

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); 
    }); 

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); 
     }); 
    } 
} 

はにコンパイルを取得します。 d3Request$2.__moduleExports.xmlにしか存在しますが、コードはコンパイルされません。何がありますか?

私もimport d3Request from 'd3-request'を試しましたが、これもコンパイルされますがまだ動作しません。結果:d3Request$1が未定義になってしまうので

var d3Request$1 = unwrapExports(d3Request); 

... 
d3Request$1.xml('assets/emojis/laughing.svg') 
    .mimeType("image/svg+xml")... 

はしかし、これはまだ動作しません。 d3Request.xmlが存在しますが、コードはコンパイルされず、d3Request$1.xmlにコンパイルされます。

+0

これを試してください: '' 'd3 'からd3としてインポートしてください。 d3.request(...) '' ' – BuildingJarl

+0

いいえ、コンパイルされません。 – parliament

答えて

1

unwrapExports(...)__moduleExportsは、ESモジュールのバージョンではなく、CommonJSファイルをインポートして(rollup-plugin-commonjsで変換する)ことを示しています。それがうまくいかないことは間違いですが、正しいファイルをインポートすることで変換を完全に回避することができます。

ロールアップ設定ファイルが表示されていないと確信することはできませんが、rollup-plugin-node-resolveを使用していると思いますか?その場合は、jsnext: trueオプションが設定されていることを確認して、ロールアップでthis fileではなくthis fileが見つかるようにしてください。

+0

ありがとうございます。私はionic-app-scriptsでIonic2に組み込まれたロールアップ設定を使用しています。設定はhttps://github.com/driftyco/ionic-app-scripts/blob/master/config/rollup.config.jsになります。それが私のnode_modules/@ ionic/app-scripts/configから正しくロードされているとすれば、あなたは言うとおり、ファイルが 'jsnext:true'をrollup-plugin-node-resolveに渡しているようです。 – parliament

+0

これは非常に奇妙です。私はイオン性のユーザーではないので、ここで何か他のことが起こっているかどうかはわかりません。 'd3-request/index.js 'からのd3Requestとしてのimport * –

関連する問題