From 5a4fb4d341f0f3a8a855ff44ac87bc64c7a7d5a4 Mon Sep 17 00:00:00 2001 From: nicejade Date: Sat, 12 May 2018 23:02:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20update=20&=20optimizate=20webpack4=20?= =?UTF-8?q?=F0=9F=98=8A=20=20#24?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/utils.js | 9 +- build/webpack.base.conf.js | 4 +- build/webpack.prod.conf.js | 168 ++++++++++++++++++++-------------- package.json | 3 +- yarn.lock | 178 ++++++++++++++++++++++++++++++++++++- 5 files changed, 286 insertions(+), 76 deletions(-) diff --git a/build/utils.js b/build/utils.js index 19971e94..e2361f6c 100644 --- a/build/utils.js +++ b/build/utils.js @@ -1,5 +1,6 @@ const path = require('path') const config = require('../config') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') exports.assetsPath = function (_path) { var assetsSubDirectory = process.env.NODE_ENV === 'production' @@ -31,7 +32,11 @@ exports.cssLoaders = function (options) { }) } - return ['vue-style-loader'].concat(loaders) + if (options.extract) { + return [MiniCssExtractPlugin.loader].concat(loaders) + } else { + return ['vue-style-loader'].concat(loaders) + } } // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html @@ -58,4 +63,4 @@ exports.styleLoaders = function (options) { }) } return output -} +} \ No newline at end of file diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js index 912b4846..34560c98 100644 --- a/build/webpack.base.conf.js +++ b/build/webpack.base.conf.js @@ -43,7 +43,8 @@ function createHappyPlugin (id, loaders) { module.exports = { entry: { app: './src/main.js', - vendor: ['lodash'] + lodash: ['lodash'], + element: ['element-ui'] }, mode: env === 'production' ? 'production' : 'development', output: { @@ -134,7 +135,6 @@ module.exports = { externals: { // 'element-ui': 'ElementUI', // 'vue': 'Vue', - // 'lodash': '_', 'babel-polyfill': 'window' }, plugins: [ diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js index 8e3c1953..8fa3e6c3 100644 --- a/build/webpack.prod.conf.js +++ b/build/webpack.prod.conf.js @@ -1,4 +1,3 @@ -const fs = require('fs') const path = require('path') const utils = require('./utils') const webpack = require('webpack') @@ -10,11 +9,11 @@ const HtmlWebpackPlugin = require('html-webpack-plugin') const AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') -const UglifyJsPlugin = require('uglifyjs-webpack-plugin') const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin') const loadMinified = require('./load-minified') const LodashModuleReplacementPlugin = require('lodash-webpack-plugin') const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin') +const BabiliWebpackPlugin = require('babili-webpack-plugin') const Jarvis = require('webpack-jarvis') const env = process.env.NODE_ENV === 'testing' @@ -28,86 +27,46 @@ const webpackConfig = merge(baseWebpackConfig, { extract: true }) }, + devtool: config.build.productionSourceMap ? '#source-map' : false, // @desc: Documenttion: https://webpack.js.org/configuration/performance/ + performance: { // Given an asset is created that is over 250kb;false | "error" | "warning"(Default) hints: 'warning', // The default value is 250000 (bytes). - maxEntrypointSize: 307200, // (300kb) + maxEntrypointSize: 500000, // (300kb) // This option controls when webpack emits a performance hint based on individual asset size. The default value is 250000 (bytes). - maxAssetSize: 307200 + maxAssetSize: 500000 }, + output: { path: config.build.assetsRoot, filename: utils.assetsPath('js/[name].[chunkhash].js'), chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') }, + optimization: { - minimizer: [ - new UglifyJsPlugin({ - cache: true, - parallel: true, - sourceMap: config.build.productionSourceMap // set to true if you want JS source maps - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSAssetsPlugin({}) - ], - // @desc: Documentation:https://www.webpackjs.com/plugins/split-chunks-plugin/ - splitChunks: { - // chunks: "initial","async"和"all"分别是:初始块,按需块或所有块; - chunks: 'async', - // (默认值:30000)块的最小大小 - minSize: 25600, - // (默认值:1)分割前共享模块的最小块数 - minChunks: 1, - // (缺省值5)按需加载时的最大并行请求数 - maxAsyncRequests: 9, - // (默认值3)入口点上的最大并行请求数 - maxInitialRequests: 9, - // webpack 将使用块的起源和名称来生成名称: `vendors~main.js`,如项目与"~"冲突,则可通过此值修改,Eg: '-' - automaticNameDelimiter: '~', - // cacheGroups is an object where keys are the cache group names. - name: true, - cacheGroups: { - // 设置为 false 以禁用默认缓存组 - default: { - minChunks: 2, - // 默认组的优先级为负数,以允许任何自定义缓存组具有更高的优先级(默认值为0) - priority: -20, - // 选项 reuseExistingChunk 允许重复使用现有的块,而不是在模块完全匹配时创建新的块 - reuseExistingChunk: true, - }, - commons: { - name: "commons", - chunks: "initial", - minChunks: 2, - maxInitialRequests: 5 - }, - vendor: { - name: "vendor", - test: /[\\/]node_modules[\\/]/, - priority: -10 - }, - style: { - name: 'style', - test: /\.(scss|css)$/, - priority: 0, - enforce: true - } - } - } - // runtimeChunk: true, adds an additonal chunk to each entrypoint containing only the runtime. + /* + @desc: Setting optimization.runtimeChunk to true adds an additonal chunk to each entrypoint containing only the runtime. + The value single instead creates a runtime file to be shared for all generated chunks. + @reference: https://doc.webpack-china.org/plugins/split-chunks-plugin/#optimization-runtimechunk + */ // runtimeChunk: { // name: 'manifest' // } }, + plugins: [ // http://vuejs.github.io/vue-loader/en/workflow/production.html new webpack.DefinePlugin({ 'process.env': env }), + + /* + @desc: A faster uglifyjs plugin.(用来替代 Webpack `uglifyjs-webpack-plugin`) + @reference: https://github.com/gdborton/webpack-parallel-uglify-plugin + */ new ParallelUglifyPlugin({ cacheDir: '.cache/', uglifyJS: { @@ -117,14 +76,62 @@ const webpackConfig = merge(baseWebpackConfig, { }, compress: { warnings: false, - drop_console: true + drop_console: true, + collapse_vars: true, + reduce_vars: true } } }), + // extract css into its own file new MiniCssExtractPlugin({ filename: utils.assetsPath('css/[name].[contenthash].css') }), + + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSAssetsPlugin({}), + + // A Webpack Plugin for Babili - A babel based minifier + // https://www.npmjs.com/package/babili-webpack-plugin + new BabiliWebpackPlugin(), + + // @desc: Documentation:https://www.webpackjs.com/plugins/split-chunks-plugin/ + new webpack.optimize.SplitChunksPlugin({ + // chunks: "initial","async"和"all"分别是:初始块,按需块或所有块; + chunks: 'all', + // (默认值:30000)块的最小大小 + minSize: 50000, + // (默认值:1)分割前共享模块的最小块数 + minChunks: 1, + // (缺省值5)按需加载时的最大并行请求数 + maxAsyncRequests: 8, + // (默认值3)入口点上的最大并行请求数 + maxInitialRequests: 8, + // webpack 将使用块的起源和名称来生成名称: `vendors~main.js`,如项目与"~"冲突,则可通过此值修改,Eg: '-' + automaticNameDelimiter: '~', + // cacheGroups is an object where keys are the cache group names. + name: true, + cacheGroups: { + // 设置为 false 以禁用默认缓存组 + default: false, + element: { + name: 'element', + test: /[\\/]node_modules[\\/]element-ui[\\/]/, + chunks: 'initial', + // 默认组的优先级为负数,以允许任何自定义缓存组具有更高的优先级(默认值为0) + priority: -10 + }, + lodash: { + name: 'lodash', + test: /[\\/]node_modules[\\/]lodash[\\/]/, + chunks: 'initial', + // 默认组的优先级为负数,以允许任何自定义缓存组具有更高的优先级(默认值为0) + priority: -10 + } + } + }), + // generate dist index.html with correct asset hash for caching. // you can customize output by editing /index.html // see https://github.com/ampedandwired/html-webpack-plugin @@ -138,18 +145,19 @@ const webpackConfig = merge(baseWebpackConfig, { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference + // @reference: https://github.com/kangax/html-minifier#options-quick-reference }, // necessary to consistently work with multiple chunks via splitChunks chunksSortMode: 'dependency', serviceWorkerLoader: `` }), + new AddAssetHtmlPlugin({ filepath: path.resolve(__dirname, 'dist/*.dll.js') }), - // copy custom static assets + + // copy custom static assets (已在 build.js 中通过 Shell 做了,所以可不用此插件;) // new CopyWebpackPlugin([ // { // from: path.resolve(__dirname, '../static'), @@ -157,9 +165,10 @@ const webpackConfig = merge(baseWebpackConfig, { // ignore: ['.*'] // } // ]), + /* @desc: service worker caching, More detailed configuration: - https://github.com/goldhand/sw-precache-webpack-plugin + @reference: https://github.com/goldhand/sw-precache-webpack-plugin */ new SWPrecacheWebpackPlugin({ cacheId: 'your-app-name', @@ -168,14 +177,28 @@ const webpackConfig = merge(baseWebpackConfig, { minify: true, stripPrefix: 'dist/' }), + new LodashModuleReplacementPlugin(), /* @desc: limit minChunkSize through MinChunkSizePlugin @reference: https://webpack.js.org/plugins/min-chunk-size-plugin/ */ new webpack.optimize.MinChunkSizePlugin({ - minChunkSize: 25600 // Minimum number of characters (25kb) + minChunkSize: 50000 // Minimum number of characters (25kb) }), + + /* + @desc: AggressiveSplittingPlugin 可以将 bundle 拆分成更小的 chunk; + 直到各个 chunk 的大小达到 option 设置的 maxSize,它通过目录结构将模块组织在一起 + @reference: https://doc.webpack-china.org/plugins/aggressive-splitting-plugin/ + @but: 由于 HtmlWebpackPlugin 插件中的错误,此方法在启用时不起作用; + 具体可参见:https://github.com/jantimon/html-webpack-plugin/issues/446 + */ + // new webpack.optimize.AggressiveSplittingPlugin({ + // minSize: 10000, + // maxSize: 500000 + // }), + /* @desc: 编译之后,您可能会注意到某些块太小 - 创建更大的HTTP开销,那么您可以处理像这样; @reference: https://webpack.js.org/plugins/limit-chunk-count-plugin/ @@ -183,7 +206,16 @@ const webpackConfig = merge(baseWebpackConfig, { new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 10 // Must be greater than or equal to one // minChunkSize: 1000 - }) + }), + + // 在编译出现错误时,使用 NoEmitOnErrorsPlugin 来跳过输出阶段; + new webpack.NoEmitOnErrorsPlugin(), + + /* + @desc: 提升代码在浏览器中的执行速度: 作用域提升(scope hoisting); + @reference: https://doc.webpack-china.org/plugins/module-concatenation-plugin/ + */ + new webpack.optimize.ModuleConcatenationPlugin() ] }) @@ -212,8 +244,8 @@ if (config.build.bundleAnalyzerReport) { if (config.build.bundleIntelligentDashboard) { webpackConfig.plugins.push(new Jarvis({ - port: 1337 // optional: set a port. + port: 1337 })) } -module.exports = webpackConfig +module.exports = webpackConfig \ No newline at end of file diff --git a/package.json b/package.json index 2a518c15..020fa404 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "precommit-msg": "echo 'Pre-commit checks...' && exit 0", "analyz": "NODE_ENV=production npm_config_report=true npm run build", "clean-commit": "git checkout --orphan latest_branch && git add -A && git commit -am 'style: clean past commit history 😊' && git branch -D master && git branch -m master && git push -f origin master", - "commitmsg": "validate-commit-msg", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", "generate-sitemap": "node build/generate-sitemap.js" }, @@ -64,6 +63,7 @@ "babel-preset-env": "^1.2.1", "babel-preset-stage-2": "^6.22.0", "babel-register": "^6.22.0", + "babili-webpack-plugin": "^0.1.2", "chai": "^3.5.0", "chalk": "^1.1.3", "chromedriver": "^2.27.2", @@ -128,7 +128,6 @@ "svgxuse": "^1.1.16", "sw-precache-webpack-plugin": "^0.11.4", "uglify-es": "^3.3.9", - "uglifyjs-webpack-plugin": "^1.2.5", "url-loader": "^0.5.7", "vue-loader": "^11.0.0", "vue-style-loader": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index ed4b8db5..e2f8ffe0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -387,7 +387,7 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, ba esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.22.1, babel-core@^6.26.0: +babel-core@^6.22.1, babel-core@^6.24.1, babel-core@^6.26.0: version "6.26.3" resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" dependencies: @@ -467,6 +467,10 @@ babel-helper-define-map@^6.24.1: babel-types "^6.26.0" lodash "^4.17.4" +babel-helper-evaluate-path@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.1.0.tgz#95d98c4ea36150483db2e7d3ec9e1954a72629cb" + babel-helper-explode-assignable-expression@^6.24.1: version "6.24.1" resolved "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" @@ -484,6 +488,10 @@ babel-helper-explode-class@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" +babel-helper-flip-expressions@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.1.2.tgz#77f6652f9de9c42401d827bd46ebd2109e3ef18a" + babel-helper-function-name@^6.24.1: version "6.24.1" resolved "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" @@ -508,6 +516,18 @@ babel-helper-hoist-variables@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-is-void-0/download/babel-helper-is-void-0-0.1.1.tgz#72f21a3abba0bef3837f9174fca731aed9a02888" + +babel-helper-mark-eval-scopes@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.1.1.tgz#4554345edf9f2549427bd2098e530253f8af2992" + babel-helper-module-imports@^7.0.0-beta.3: version "7.0.0-beta.3" resolved "http://registry.npm.taobao.org/babel-helper-module-imports/download/babel-helper-module-imports-7.0.0-beta.3.tgz#e15764e3af9c8e11810c09f78f498a2bdc71585a" @@ -540,6 +560,10 @@ babel-helper-remap-async-to-generator@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" +babel-helper-remove-or-void@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.1.1.tgz#9d7e1856dc6fafcb41b283a416730dc1844f66d7" + babel-helper-replace-supers@^6.24.1: version "6.24.1" resolved "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" @@ -551,6 +575,10 @@ babel-helper-replace-supers@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" +babel-helper-to-multiple-sequence-expressions@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.1.1.tgz#5f1b832b39e4acf954e9137f0251395c71196b35" + babel-helper-vue-jsx-merge-props@^2.0.0: version "2.0.3" resolved "http://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" @@ -602,6 +630,70 @@ babel-plugin-lodash@^3.2.11: lodash "^4.17.4" require-package-name "^2.0.1" +babel-plugin-minify-builtins@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.1.3.tgz#4f21a7dcb51f91a04ea71d47ff0e8e3b05fec021" + dependencies: + babel-helper-evaluate-path "^0.1.0" + +babel-plugin-minify-constant-folding@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.1.3.tgz#57bd172adf8b8d74ad7c99612eb950414ebea3ca" + dependencies: + babel-helper-evaluate-path "^0.1.0" + +babel-plugin-minify-dead-code-elimination@^0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.1.7.tgz#774f536f347b98393a27baa717872968813c342c" + dependencies: + babel-helper-mark-eval-scopes "^0.1.1" + babel-helper-remove-or-void "^0.1.1" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.1.2.tgz#e286b40b7599b18dfea195071e4279465cfc1884" + dependencies: + babel-helper-is-void-0 "^0.1.1" + +babel-plugin-minify-guarded-expressions@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.1.2.tgz#dfc3d473b0362d9605d3ce0ac1e22328c60d1007" + dependencies: + babel-helper-flip-expressions "^0.1.2" + +babel-plugin-minify-infinity@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.1.2.tgz#5f1cf67ddedcba13c8a00da832542df0091a1cd4" + +babel-plugin-minify-mangle-names@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.1.3.tgz#bfa24661a6794fb03833587e55828b65449e06fe" + dependencies: + babel-helper-mark-eval-scopes "^0.1.1" + +babel-plugin-minify-numeric-literals@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.1.1.tgz#d4b8b0c925f874714ee33ee4b26678583d7ce7fb" + +babel-plugin-minify-replace@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.1.2.tgz#b90b9e71ab4d3b36325629a91beabe13b0b16ac1" + +babel-plugin-minify-simplify@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.1.2.tgz#a968f1658fdeb2fc759e81fe331d89829df0f6b9" + dependencies: + babel-helper-flip-expressions "^0.1.2" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.1.1" + +babel-plugin-minify-type-constructors@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.1.2.tgz#db53c5b76cb8e2fcd45d862f17104c78761337ee" + dependencies: + babel-helper-is-void-0 "^0.1.1" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -879,6 +971,22 @@ babel-plugin-transform-flow-strip-types@^6.8.0: babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.22.0" +babel-plugin-transform-inline-consecutive-adds@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz#5442e9f1c19c78a7899f8a4dee6fd481f61001f5" + +babel-plugin-transform-member-expression-literals@^6.8.4: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.2.tgz#1f397ab961a5c3a401f2a747af06e72004afcb76" + +babel-plugin-transform-merge-sibling-variables@^6.8.5: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.2.tgz#994a9004a79c79f0c91c496e8a2dbc7e9b73f7b4" + +babel-plugin-transform-minify-booleans@^6.8.2: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.2.tgz#cf995be067a0303cb526549f03dcd9682419430d" + babel-plugin-transform-object-rest-spread@^6.22.0: version "6.26.0" resolved "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" @@ -886,18 +994,44 @@ babel-plugin-transform-object-rest-spread@^6.22.0: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" +babel-plugin-transform-property-literals@^6.8.4: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.2.tgz#a58d0996cf2adaf224f7ce848ad1cde4cd8cf275" + dependencies: + esutils "^2.0.2" + babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: version "6.26.0" resolved "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: regenerator-transform "^0.10.0" +babel-plugin-transform-regexp-constructors@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.1.1.tgz#312ab7487cc88a1c62ee25ea1b6087e89b87799c" + +babel-plugin-transform-remove-console@^6.8.4: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.2.tgz#e8a0c27d56c9503ca16e284f6b64dbd4b95d21e9" + +babel-plugin-transform-remove-debugger@^6.8.4: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.2.tgz#536c87bdb6200d1460c996dd95d179cf38c24ee1" + +babel-plugin-transform-remove-undefined@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.1.2.tgz#e1ebf51110f6b1e0665f28382ef73f95e5023652" + babel-plugin-transform-runtime@^6.22.0: version "6.23.0" resolved "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" dependencies: babel-runtime "^6.22.0" +babel-plugin-transform-simplify-comparison-operators@^6.8.4: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.2.tgz#0c0e9afa732924f03aa982fd63c92d0408bd5656" + babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" resolved "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" @@ -905,6 +1039,10 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" +babel-plugin-transform-undefined-to-void@^6.8.2: + version "6.9.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.2.tgz#165fde73393276bea02a739658878dcced0b9ebb" + babel-polyfill@^6.23.0: version "6.26.0" resolved "http://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" @@ -913,6 +1051,34 @@ babel-polyfill@^6.23.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" +babel-preset-babili@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/babel-preset-babili/download/babel-preset-babili-0.1.4.tgz#ad9d6651002f5bc3f07cab300781167f54724bf2" + dependencies: + babel-plugin-minify-builtins "^0.1.3" + babel-plugin-minify-constant-folding "^0.1.3" + babel-plugin-minify-dead-code-elimination "^0.1.7" + babel-plugin-minify-flip-comparisons "^0.1.2" + babel-plugin-minify-guarded-expressions "^0.1.2" + babel-plugin-minify-infinity "^0.1.2" + babel-plugin-minify-mangle-names "^0.1.3" + babel-plugin-minify-numeric-literals "^0.1.1" + babel-plugin-minify-replace "^0.1.2" + babel-plugin-minify-simplify "^0.1.2" + babel-plugin-minify-type-constructors "^0.1.2" + babel-plugin-transform-inline-consecutive-adds "^0.1.2" + babel-plugin-transform-member-expression-literals "^6.8.4" + babel-plugin-transform-merge-sibling-variables "^6.8.5" + babel-plugin-transform-minify-booleans "^6.8.2" + babel-plugin-transform-property-literals "^6.8.4" + babel-plugin-transform-regexp-constructors "^0.1.1" + babel-plugin-transform-remove-console "^6.8.4" + babel-plugin-transform-remove-debugger "^6.8.4" + babel-plugin-transform-remove-undefined "^0.1.2" + babel-plugin-transform-simplify-comparison-operators "^6.8.4" + babel-plugin-transform-undefined-to-void "^6.8.2" + lodash.isplainobject "^4.0.6" + babel-preset-env@^1.2.1: version "1.6.1" resolved "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" @@ -1064,6 +1230,14 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24 lodash "^4.17.4" to-fast-properties "^1.0.3" +babili-webpack-plugin@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babili-webpack-plugin/download/babili-webpack-plugin-0.1.2.tgz#164ac03d5932f6a52143e7ffc06f2711c651b6f2" + dependencies: + babel-core "^6.24.1" + babel-preset-babili "^0.1.4" + webpack-sources "^1.0.1" + babylon@^6.17.0, babylon@^6.17.3, babylon@^6.18.0: version "6.18.0" resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -5354,7 +5528,7 @@ lodash.rest@^4.0.0: version "4.0.5" resolved "http://registry.npm.taobao.org/lodash.rest/download/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" -lodash.some@^4.4.0: +lodash.some@^4.4.0, lodash.some@^4.6.0: version "4.6.0" resolved "http://registry.npm.taobao.org/lodash.some/download/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"