2017-10-06 3 views
0

を共有する方法は?どのように私はいくつかの共通部品や珍しいパーツを持っている2つのロールアップの設定ファイルを持っているロールアップ設定ファイル

DRYを維持しないと、次のような問題が発生します。多くの外部依存関係を想像してください。私たちが困っている場所に新しい依存関係を追加することを忘れると、

(私も、いくつかの異なるプラグインなどのセットとプラグインのコンフィグを使用しますが、それは、この問題の範囲外であると言う。)

答えて

2

まず、彼らはただのJavaScriptモジュールですので、あなたは常にこの種の操作を行うことができます事:

// rollup.config.common.js 
export default { 
    external: ['invariant', 'lodash'], 
    globals: { 
    invariant: 'invariant' 
    }, 
    input: 'src/index.js', 
    name: 'my.comp' 
}; 

// rollup.config.esm5.js 
import common from './rollup.config.common.js'; 

export default Object.assign({ 
    output: { 
    file: 'my.comp.es5.js' 
    format: 'es' 
} 
}, common); 

// rollup.config.umd.js 
import common from './rollup.config.common.js'; 

export default Object.assign({ 
    output: { 
    file: 'my.comp.umd.js' 
    format: 'umd' 
} 
}, common); 

しかし、ここで本当の答えはそうのような単一のものに2つのconfigsを組み合わせることである:トン、

export default { 
    external: ['invariant', 'lodash'], 
    globals: { 
    invariant: 'invariant' 
    }, 
    input: 'src/index.js', 
    name: 'my.comp', 
    output: [ 
    { 
     file: 'my.comp.es5.js' 
     format: 'es' 
    }, 
    { 
     file: 'my.comp.umd.js' 
     format: 'umd' 
    } 
    ] 
}; 

と同様に維持するために単純かつ容易であることロールアップはたくさんの作業を2回節約できるので、彼の方が速くなります。

ビルド間でoutputオプションを変更する必要がある場合は、1つのファイル(export default [...])からconfigの配列をエクスポートすることもできます。

+0

投稿する前に最初の解決策を結んだが、何らかの理由でうまくいかなかった。しかし、2番目のソリューションの出力[]は素晴らしいです。 BTWのロールアップはすばらしいです。 – bhantol

+0

Ok - 最初に作業した部分もうまくいきました。Object.assignの引数を{} – bhantol

関連する問題