最小化和删除所有未使用的function,使js文件的大小尽可能小,networking包2

所以这是我的networking包:

var path = require('path'); var webpack = require('webpack'); module.exports = { entry: { event: './widgets/events/app.js' }, output: { path: './dist', filename: '[name].widget.js' }, target: 'web', node: { console: true, fs: 'empty', net: 'empty', tls: 'empty' }, externals: [ { 'cls-bluebird': true } ], plugins: [ new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false // https://github.com/webpack/webpack/issues/1496 } }) ], module: { loaders: [ { test: /.js?$/, loader: 'babel-loader', exclude: /node_modules/, query: { presets: ['es2015'] } }, { test: /\.marko$/, loader: 'marko-loader' } ] }, }; 

而我呢:

“scripts”:{“build”:“eslint widgets && eslint helpers && webpack”,“prod”:“eslint widgets && eslint helpers && webpack -p –optimize-minimize”},

当我做npm run prod ,然后在dist/目录上做一个ls -lah我看到:

 ls -lah total 2704 drwxr-xr-x 3 AdamBalan staff 102B 17 Feb 13:28 . drwxr-xr-x 13 AdamBalan staff 442B 28 Feb 12:12 .. -rw-r--r-- 1 AdamBalan staff 1.3M 7 Mar 16:05 event.widget.js 

1.3 MB是大的方式。 我使用像moment jslodash和其他一些图书馆的东西。 有没有办法让这个文件变小? 我错过了其他任何优化?

有人提到了树木摇动的概念,但是每一篇博客文章都会谈到这个概念,但并没有说明如何去做。

想法?

momentjs加载本地化文件。 看到这个答案

lodash提供了一个babel插件和webpack插件,它只会加载它所需要的,而不是整个库。 请参阅https://www.npmjs.com/package/babel-plugin-lodash和https://www.npmjs.com/package/lodash-webpack-plugin

树摇晃是可能的。 请参阅有关如何使用树木摇晃的汇总示例。 适用于webpack。