2016-09-04 1 views
1

ロールアップ(rollupjs.org)が新しく、エクスポートされた値が削除される理由を理解できません。おそらくロールアップ中にtreeshakingによって。なぜrollup.jsは出力に排他的にエクスポートされた値を含まないのですか?

私はモジュールの一部として提供したいと思うでしょういくつかの基本的なデータとdata.jsonあります

{ 
    "colors": ["red", "green", "blue"], 
    "shapes": ["circle", "triangle", "square"] 
} 

...と、それらをエクスポートしますモジュール:

import { colors, shapes } from './data.json'; 

function run() { 
    console.log('Run, Forest, Run.'); 
} 

export default run; 

export { 
    colors, 
    shapes 
}; 

をrollup.jsは "使用"と見なされるようなエクスポート文を認識しないので、排他的にそこにあるものはすべて出力から "逸脱"します。

+0

このモジュールをどのようにインポートするのか、アプリケーションでロールアップを呼び出す方法、結果がどのように表示されるのかを教えてください。 – Bergi

答えて

2

エントリモジュール輸出colorsshapes場合は、そのは、これらの値を「を使用して」とみなされます。いくつかの内部モジュールがそれらをエクスポートすると、別のモジュールがcolorsまたはshapesをインポートしてそれらを使用する場合にのみ、そのモジュールが組み込まれます。

demonstration of the first case(エントリモジュールは値をエクスポートします)、ここにはdemonstration of the second case(値はnot-main.jsでエクスポートされます)です。

これはあなたの場合に起こっていることではない場合は、バグが発生した可能性があります。その場合はfile an issueを入力してください!

+0

ありがとうございました。あなたは正しいです、rollup.jsはそれが必要とするように実行しています。正しい "物"を輸出していたが間違ったレベルであることを知るために、私は抽象概念のレイヤーであまりにも間接的に迷っていたと思う。エクスポートを正しい場所に移動すると、今すぐ正しく動作しています。 – kalisjoshua

関連する問題