2017-08-25 7 views
2

私はこのような非常に単純なのWebPACKの設定があります。私のファイルindex.jsでWebPACKのインポートすべてのコードの代わりに、いくつかの機能

var path = require('path'); 

module.exports = { 
    entry: { 
    test: "./index.js" 
    }, 
    output: { 
    filename: '[name].js', 
    path: path.resolve(__dirname, 'dist') 
    } 
}; 

を私はRAMDAを使用していくつかのコードを書いていると私はこのようにそれをインポートしています:

import { compose, head, tail } from 'ramda'; 

後でwebpack -pを使用してビルドを行っています。数行のコードで私のビルドは59,2Kbです。私がwebpack-bundle-analyzerを使用しているときは、すべての機能がバンドルに入っています。私がインポートしている場合

import ramda from 'ramda'; 

私は同じバンドルサイズを持っています。何故ですか?私は間違って何をしていますか?私は最新のWebpackバージョン3.5.5を使用しています。ありがとうございます

答えて

5

Ramda doesn't natively use ES2015 modules yet、それゆえWebpackはツリーシェイクを実行できません。

は一方で、あなたはとてもように、個々のモジュールをインポートすることができます。

import compose from "ramda/src/compose"; 
import head from "ramda/src/head"; 
import tail from "ramda/src/tail"; 

また、あなたが実際に使用しているどのRAMDA機能を把握するためにあなたのコードを分析し、残りの部分を削除しbabel-plugin-ramdaを、使用することができます。