2017-08-25 65 views
2

我有很简单的WebPack的配置是这样的:的WebPack进口的所有代码,而不是某些功能

var path = require('path'); 

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

在我的文件index.js我正在写使用Ramda一些代码,我将其导入这样的:

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

后来我使用webpack -p进行构建。用几行代码我的版本是59,2Kb,当我使用webpack-bundle-analyzer时,我看到所有函数都在捆绑中 - 整个Ramda库。如果我正在导入

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"; 

或者,你可以使用babel-plugin-ramda,它分析你的代码搞清楚你实际使用该Ramda功能,并删除其余部分。

相关问题