@xunlie/vue-clickout 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @xunlie/vue-clickout might be problematic. Click here for more details.

Files changed (36) hide show
  1. package/.babelrc +8 -0
  2. package/CHANGELOG.md +11 -0
  3. package/README.md +116 -0
  4. package/build/build.js +35 -0
  5. package/build/check-versions.js +48 -0
  6. package/build/dev-client.js +9 -0
  7. package/build/dev-server.js +89 -0
  8. package/build/utils.js +71 -0
  9. package/build/vue-loader.conf.js +12 -0
  10. package/build/webpack.base.conf.js +58 -0
  11. package/build/webpack.dev.conf.js +34 -0
  12. package/build/webpack.lib.conf.js +40 -0
  13. package/build/webpack.prod.conf.js +120 -0
  14. package/config/dev.env.js +6 -0
  15. package/config/index.js +38 -0
  16. package/config/prod.env.js +3 -0
  17. package/demo/App.vue +26 -0
  18. package/demo/assets/community.css +1067 -0
  19. package/demo/assets/logo.png +0 -0
  20. package/demo/assets/reset.css +6 -0
  21. package/demo/components/commentItem.vue +63 -0
  22. package/demo/dist/index.html +1 -0
  23. package/demo/dist/static/css/app.0a3bdcaaa6f3b802a0a4342127401472.css +1 -0
  24. package/demo/dist/static/css/app.0a3bdcaaa6f3b802a0a4342127401472.css.map +1 -0
  25. package/demo/dist/static/js/app.a9b3c4b5a878ec2640e8.js +7 -0
  26. package/demo/dist/static/js/app.a9b3c4b5a878ec2640e8.js.map +1 -0
  27. package/demo/dist/static/js/manifest.f0144ada13d39efdc013.js +2 -0
  28. package/demo/dist/static/js/manifest.f0144ada13d39efdc013.js.map +1 -0
  29. package/demo/dist/static/js/vendor.5646344e475ac845fb16.js +7 -0
  30. package/demo/dist/static/js/vendor.5646344e475ac845fb16.js.map +1 -0
  31. package/demo/index.html +12 -0
  32. package/demo/main.js +21 -0
  33. package/demo/router/index.js +15 -0
  34. package/dist/vue-clickout.js +152 -0
  35. package/package.json +20 -0
  36. package/src/vue-clickout.js +62 -0
package/.babelrc ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "presets": [
3
+ ["es2015", { "modules": false }]
4
+ ],
5
+ "plugins": [
6
+ "external-helpers"
7
+ ]
8
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ ## 1.0.2 (2018-08-07)
2
+
3
+ - 移除 无用的依赖
4
+
5
+ ## 1.0.1 (2018-08-07)
6
+
7
+ - 修改 文档
8
+
9
+ ## 1.0.0 (2018-08-07)
10
+
11
+ - finish project
package/README.md ADDED
@@ -0,0 +1,116 @@
1
+ # @xunlei/vue-clickout
2
+
3
+ > Vue clickout,轻松解决“点击空白处消失”这种问题
4
+
5
+ ## 在线Demo
6
+
7
+ [https://xunleif2e.github.io/vue-clickout/demo/dist/index.html](https://xunleif2e.github.io/vue-clickout/demo/dist/index.html)
8
+
9
+ ## Installation
10
+
11
+ ```
12
+ npm i @xunlei/vue-clickout -S
13
+ ```
14
+
15
+ ## 注册指令
16
+
17
+ `clickout`事件是通过指令的方式实现的,因此使用前需注册指令,可以全局注册也可以局部注册。
18
+
19
+ ### 全局注册
20
+ ```javascript
21
+ import Vue from 'vue'
22
+ import VueClickout from '@xunlei/vue-clickout'
23
+
24
+ Vue.use(VueClickout)
25
+ ```
26
+ ### 局部注册
27
+ ```html
28
+ <template>
29
+ <div class="face" v-clickout @clickout="open=false">
30
+ <a href="javascript:;" @click="open=!open">表情</a>
31
+ <div class="emoji">
32
+ <li title="开心"><span class="ico-emoji emoji-kaixin"></span></li>
33
+ <li title="可爱"><span class="ico-emoji emoji-keai"></span></li>
34
+ </div>
35
+ </div>
36
+ </template>
37
+ <script>
38
+ import { clickout } from '@xunlei/vue-clickout'
39
+
40
+ export default {
41
+ data () {
42
+ return {
43
+ open: false
44
+ }
45
+ },
46
+ // 注册指令
47
+ directives: {
48
+ clickout
49
+ }
50
+ }
51
+ </script>
52
+ ```
53
+ ### 用法
54
+
55
+ ```html
56
+ <template>
57
+ <div class="item-comment">
58
+ <div class="comment-user">
59
+ <span class="user-name">疯狂的迷弟: </span>
60
+ <p class="text-comment">王祖贤越看越美</p>
61
+ <a href="javascript:;" class="reply-btn" @click="showReply=!showReply" ref="replyBtnRef">回复</a>
62
+ </div>
63
+ <div class="reply" v-clickout="['replyBtnRef']" @clickout="showReply=false">
64
+ <div class="reply-area" v-show="showReply">
65
+ <input type="text" class="ipt-reply">
66
+ <div class="reply-option">
67
+ <button>发送</button>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </template>
73
+
74
+ <script>
75
+ export default {
76
+ data () {
77
+ return {
78
+ showReply: false
79
+ }
80
+ }
81
+ }
82
+ </script>
83
+ ```
84
+ ### 参数
85
+
86
+ 参数 | 说明 | 类型 |
87
+ | :-- | :-- | :-- |
88
+ | exceptRefs | 要排除的Ref,默认为指令所在的DOM | Array
89
+
90
+ ## 开发命令
91
+
92
+ ``` bash
93
+ # install deps
94
+ npm install
95
+
96
+ # serve demo at localhost:8080
97
+ npm run dev
98
+
99
+ # build library and demo
100
+ npm run build
101
+
102
+ # build library
103
+ npm run build:library
104
+
105
+ # build demo
106
+ npm run build:demo
107
+
108
+ # pre publish
109
+ npm run prepublish
110
+ ```
111
+
112
+ ## License
113
+
114
+ [MIT](http://opensource.org/licenses/MIT)
115
+
116
+ Copyright (c) 2018 [greenfavo](https://github.com/greenfavo)
package/build/build.js ADDED
@@ -0,0 +1,35 @@
1
+ require('./check-versions')()
2
+
3
+ process.env.NODE_ENV = 'production'
4
+
5
+ var ora = require('ora')
6
+ var rm = require('rimraf')
7
+ var path = require('path')
8
+ var chalk = require('chalk')
9
+ var webpack = require('webpack')
10
+ var config = require('../config')
11
+ var webpackConfig = require('./webpack.prod.conf')
12
+
13
+ var spinner = ora('building for production...')
14
+ spinner.start()
15
+
16
+ rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
17
+ if (err) throw err
18
+ webpack(webpackConfig, function (err, stats) {
19
+ spinner.stop()
20
+ if (err) throw err
21
+ process.stdout.write(stats.toString({
22
+ colors: true,
23
+ modules: false,
24
+ children: false,
25
+ chunks: false,
26
+ chunkModules: false
27
+ }) + '\n\n')
28
+
29
+ console.log(chalk.cyan(' Build complete.\n'))
30
+ console.log(chalk.yellow(
31
+ ' Tip: built files are meant to be served over an HTTP server.\n' +
32
+ ' Opening index.html over file:// won\'t work.\n'
33
+ ))
34
+ })
35
+ })
@@ -0,0 +1,48 @@
1
+ var chalk = require('chalk')
2
+ var semver = require('semver')
3
+ var packageConfig = require('../package.json')
4
+ var shell = require('shelljs')
5
+ function exec (cmd) {
6
+ return require('child_process').execSync(cmd).toString().trim()
7
+ }
8
+
9
+ var versionRequirements = [
10
+ {
11
+ name: 'node',
12
+ currentVersion: semver.clean(process.version),
13
+ versionRequirement: packageConfig.engines.node
14
+ },
15
+ ]
16
+
17
+ if (shell.which('npm')) {
18
+ versionRequirements.push({
19
+ name: 'npm',
20
+ currentVersion: exec('npm --version'),
21
+ versionRequirement: packageConfig.engines.npm
22
+ })
23
+ }
24
+
25
+ module.exports = function () {
26
+ var warnings = []
27
+ for (var i = 0; i < versionRequirements.length; i++) {
28
+ var mod = versionRequirements[i]
29
+ if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
30
+ warnings.push(mod.name + ': ' +
31
+ chalk.red(mod.currentVersion) + ' should be ' +
32
+ chalk.green(mod.versionRequirement)
33
+ )
34
+ }
35
+ }
36
+
37
+ if (warnings.length) {
38
+ console.log('')
39
+ console.log(chalk.yellow('To use this template, you must update following to modules:'))
40
+ console.log()
41
+ for (var i = 0; i < warnings.length; i++) {
42
+ var warning = warnings[i]
43
+ console.log(' ' + warning)
44
+ }
45
+ console.log()
46
+ process.exit(1)
47
+ }
48
+ }
@@ -0,0 +1,9 @@
1
+ /* eslint-disable */
2
+ require('eventsource-polyfill')
3
+ var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
4
+
5
+ hotClient.subscribe(function (event) {
6
+ if (event.action === 'reload') {
7
+ window.location.reload()
8
+ }
9
+ })
@@ -0,0 +1,89 @@
1
+ require('./check-versions')()
2
+
3
+ var config = require('../config')
4
+ if (!process.env.NODE_ENV) {
5
+ process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
6
+ }
7
+
8
+ var opn = require('opn')
9
+ var path = require('path')
10
+ var express = require('express')
11
+ var webpack = require('webpack')
12
+ var proxyMiddleware = require('http-proxy-middleware')
13
+ var webpackConfig = require('./webpack.dev.conf')
14
+
15
+ // default port where dev server listens for incoming traffic
16
+ var port = process.env.PORT || config.dev.port
17
+ // automatically open browser, if not set will be false
18
+ var autoOpenBrowser = !!config.dev.autoOpenBrowser
19
+ // Define HTTP proxies to your custom API backend
20
+ // https://github.com/chimurai/http-proxy-middleware
21
+ var proxyTable = config.dev.proxyTable
22
+
23
+ var app = express()
24
+ var compiler = webpack(webpackConfig)
25
+
26
+ var devMiddleware = require('webpack-dev-middleware')(compiler, {
27
+ publicPath: webpackConfig.output.publicPath,
28
+ quiet: true
29
+ })
30
+
31
+ var hotMiddleware = require('webpack-hot-middleware')(compiler, {
32
+ log: () => {}
33
+ })
34
+ // force page reload when html-webpack-plugin template changes
35
+ compiler.plugin('compilation', function (compilation) {
36
+ compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
37
+ hotMiddleware.publish({ action: 'reload' })
38
+ cb()
39
+ })
40
+ })
41
+
42
+ // proxy api requests
43
+ Object.keys(proxyTable).forEach(function (context) {
44
+ var options = proxyTable[context]
45
+ if (typeof options === 'string') {
46
+ options = { target: options }
47
+ }
48
+ app.use(proxyMiddleware(options.filter || context, options))
49
+ })
50
+
51
+ // handle fallback for HTML5 history API
52
+ app.use(require('connect-history-api-fallback')())
53
+
54
+ // serve webpack bundle output
55
+ app.use(devMiddleware)
56
+
57
+ // enable hot-reload and state-preserving
58
+ // compilation error display
59
+ app.use(hotMiddleware)
60
+
61
+ // serve pure static assets
62
+ var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
63
+ app.use(staticPath, express.static('./demo/static'))
64
+
65
+ var uri = 'http://localhost:' + port
66
+
67
+ var _resolve
68
+ var readyPromise = new Promise(resolve => {
69
+ _resolve = resolve
70
+ })
71
+
72
+ console.log('> Starting dev server...')
73
+ devMiddleware.waitUntilValid(() => {
74
+ console.log('> Listening at ' + uri + '\n')
75
+ // when env is testing, don't need open it
76
+ if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
77
+ opn(uri)
78
+ }
79
+ _resolve()
80
+ })
81
+
82
+ var server = app.listen(port)
83
+
84
+ module.exports = {
85
+ ready: readyPromise,
86
+ close: () => {
87
+ server.close()
88
+ }
89
+ }
package/build/utils.js ADDED
@@ -0,0 +1,71 @@
1
+ var path = require('path')
2
+ var config = require('../config')
3
+ var ExtractTextPlugin = require('extract-text-webpack-plugin')
4
+
5
+ exports.assetsPath = function (_path) {
6
+ var assetsSubDirectory = process.env.NODE_ENV === 'production'
7
+ ? config.build.assetsSubDirectory
8
+ : config.dev.assetsSubDirectory
9
+ return path.posix.join(assetsSubDirectory, _path)
10
+ }
11
+
12
+ exports.cssLoaders = function (options) {
13
+ options = options || {}
14
+
15
+ var cssLoader = {
16
+ loader: 'css-loader',
17
+ options: {
18
+ minimize: process.env.NODE_ENV === 'production',
19
+ sourceMap: options.sourceMap
20
+ }
21
+ }
22
+
23
+ // generate loader string to be used with extract text plugin
24
+ function generateLoaders (loader, loaderOptions) {
25
+ var loaders = [cssLoader]
26
+ if (loader) {
27
+ loaders.push({
28
+ loader: loader + '-loader',
29
+ options: Object.assign({}, loaderOptions, {
30
+ sourceMap: options.sourceMap
31
+ })
32
+ })
33
+ }
34
+
35
+ // Extract CSS when that option is specified
36
+ // (which is the case during production build)
37
+ if (options.extract) {
38
+ return ExtractTextPlugin.extract({
39
+ use: loaders,
40
+ fallback: 'vue-style-loader'
41
+ })
42
+ } else {
43
+ return ['vue-style-loader'].concat(loaders)
44
+ }
45
+ }
46
+
47
+ // https://vue-loader.vuejs.org/en/configurations/extract-css.html
48
+ return {
49
+ css: generateLoaders(),
50
+ postcss: generateLoaders(),
51
+ less: generateLoaders('less'),
52
+ sass: generateLoaders('sass', { indentedSyntax: true }),
53
+ scss: generateLoaders('sass'),
54
+ stylus: generateLoaders('stylus'),
55
+ styl: generateLoaders('stylus')
56
+ }
57
+ }
58
+
59
+ // Generate loaders for standalone style files (outside of .vue)
60
+ exports.styleLoaders = function (options) {
61
+ var output = []
62
+ var loaders = exports.cssLoaders(options)
63
+ for (var extension in loaders) {
64
+ var loader = loaders[extension]
65
+ output.push({
66
+ test: new RegExp('\\.' + extension + '$'),
67
+ use: loader
68
+ })
69
+ }
70
+ return output
71
+ }
@@ -0,0 +1,12 @@
1
+ var utils = require('./utils')
2
+ var config = require('../config')
3
+ var isProduction = process.env.NODE_ENV === 'production'
4
+
5
+ module.exports = {
6
+ loaders: utils.cssLoaders({
7
+ sourceMap: isProduction
8
+ ? config.build.productionSourceMap
9
+ : config.dev.cssSourceMap,
10
+ extract: isProduction
11
+ })
12
+ }
@@ -0,0 +1,58 @@
1
+ var path = require('path')
2
+ var utils = require('./utils')
3
+ var config = require('../config')
4
+ var vueLoaderConfig = require('./vue-loader.conf')
5
+
6
+ function resolve (dir) {
7
+ return path.join(__dirname, '..', dir)
8
+ }
9
+
10
+ module.exports = {
11
+ entry: {
12
+ app: './demo/main.js'
13
+ },
14
+ output: {
15
+ path: config.build.assetsRoot,
16
+ filename: '[name].js',
17
+ publicPath: process.env.NODE_ENV === 'production'
18
+ ? config.build.assetsPublicPath
19
+ : config.dev.assetsPublicPath
20
+ },
21
+ resolve: {
22
+ extensions: ['.js', '.vue', '.json'],
23
+ alias: {
24
+ 'vue$': 'vue/dist/vue.esm.js',
25
+ '@': resolve('demo')
26
+ }
27
+ },
28
+ module: {
29
+ rules: [
30
+ {
31
+ test: /\.vue$/,
32
+ loader: 'vue-loader',
33
+ options: vueLoaderConfig
34
+ },
35
+ {
36
+ test: /\.js$/,
37
+ loader: 'babel-loader',
38
+ include: [resolve('demo'), resolve('test')]
39
+ },
40
+ {
41
+ test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
42
+ loader: 'url-loader',
43
+ options: {
44
+ limit: 10000,
45
+ name: utils.assetsPath('img/[name].[hash:7].[ext]')
46
+ }
47
+ },
48
+ {
49
+ test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
50
+ loader: 'url-loader',
51
+ options: {
52
+ limit: 10000,
53
+ name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ }
@@ -0,0 +1,34 @@
1
+ var utils = require('./utils')
2
+ var webpack = require('webpack')
3
+ var config = require('../config')
4
+ var merge = require('webpack-merge')
5
+ var baseWebpackConfig = require('./webpack.base.conf')
6
+ var HtmlWebpackPlugin = require('html-webpack-plugin')
7
+ var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
8
+
9
+ // add hot-reload related code to entry chunks
10
+ Object.keys(baseWebpackConfig.entry).forEach(function (name) {
11
+ baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
12
+ })
13
+
14
+ module.exports = merge(baseWebpackConfig, {
15
+ module: {
16
+ rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17
+ },
18
+ // cheap-module-eval-source-map is faster for development
19
+ devtool: '#cheap-module-eval-source-map',
20
+ plugins: [
21
+ new webpack.DefinePlugin({
22
+ 'process.env': config.dev.env
23
+ }),
24
+ // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
25
+ new webpack.HotModuleReplacementPlugin(),
26
+ new webpack.NoEmitOnErrorsPlugin(),
27
+ // https://github.com/ampedandwired/html-webpack-plugin
28
+ new HtmlWebpackPlugin({
29
+ template: 'demo/index.html',
30
+ inject: true
31
+ }),
32
+ new FriendlyErrorsPlugin()
33
+ ]
34
+ })
@@ -0,0 +1,40 @@
1
+ var path = require('path')
2
+ var utils = require('./utils')
3
+ var config = require('../config')
4
+ var vueLoaderConfig = require('./vue-loader.conf')
5
+
6
+ function resolve (dir) {
7
+ return path.join(__dirname, '..', dir)
8
+ }
9
+
10
+ module.exports = {
11
+ entry: {
12
+ 'vue-clickout': './src/vue-clickout'
13
+ },
14
+ output: {
15
+ path: resolve('dist'),
16
+ filename: '[name].js',
17
+ library: 'vueClickOut',
18
+ libraryTarget: 'umd'
19
+ },
20
+ resolve: {
21
+ extensions: ['.js', '.vue', '.json']
22
+ },
23
+ module: {
24
+ rules: [
25
+ {
26
+ test: /\.vue$/,
27
+ loader: 'vue-loader',
28
+ options: vueLoaderConfig
29
+ },
30
+ {
31
+ test: /\.js$/,
32
+ loader: 'babel-loader',
33
+ include: [resolve('src')]
34
+ }
35
+ ]
36
+ },
37
+ node: {
38
+ process: false
39
+ }
40
+ }
@@ -0,0 +1,120 @@
1
+ var path = require('path')
2
+ var utils = require('./utils')
3
+ var webpack = require('webpack')
4
+ var config = require('../config')
5
+ var merge = require('webpack-merge')
6
+ var baseWebpackConfig = require('./webpack.base.conf')
7
+ var CopyWebpackPlugin = require('copy-webpack-plugin')
8
+ var HtmlWebpackPlugin = require('html-webpack-plugin')
9
+ var ExtractTextPlugin = require('extract-text-webpack-plugin')
10
+ var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
11
+
12
+ var env = config.build.env
13
+
14
+ var webpackConfig = merge(baseWebpackConfig, {
15
+ module: {
16
+ rules: utils.styleLoaders({
17
+ sourceMap: config.build.productionSourceMap,
18
+ extract: true
19
+ })
20
+ },
21
+ devtool: config.build.productionSourceMap ? '#source-map' : false,
22
+ output: {
23
+ path: config.build.assetsRoot,
24
+ filename: utils.assetsPath('js/[name].[chunkhash].js'),
25
+ chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
26
+ },
27
+ plugins: [
28
+ // http://vuejs.github.io/vue-loader/en/workflow/production.html
29
+ new webpack.DefinePlugin({
30
+ 'process.env': env
31
+ }),
32
+ new webpack.optimize.UglifyJsPlugin({
33
+ compress: {
34
+ warnings: false
35
+ },
36
+ sourceMap: true
37
+ }),
38
+ // extract css into its own file
39
+ new ExtractTextPlugin({
40
+ filename: utils.assetsPath('css/[name].[contenthash].css')
41
+ }),
42
+ // Compress extracted CSS. We are using this plugin so that possible
43
+ // duplicated CSS from different components can be deduped.
44
+ new OptimizeCSSPlugin({
45
+ cssProcessorOptions: {
46
+ safe: true
47
+ }
48
+ }),
49
+ // generate dist index.html with correct asset hash for caching.
50
+ // you can customize output by editing /index.html
51
+ // see https://github.com/ampedandwired/html-webpack-plugin
52
+ new HtmlWebpackPlugin({
53
+ filename: config.build.index,
54
+ template: 'demo/index.html',
55
+ inject: true,
56
+ minify: {
57
+ removeComments: true,
58
+ collapseWhitespace: true,
59
+ removeAttributeQuotes: true
60
+ // more options:
61
+ // https://github.com/kangax/html-minifier#options-quick-reference
62
+ },
63
+ // necessary to consistently work with multiple chunks via CommonsChunkPlugin
64
+ chunksSortMode: 'dependency'
65
+ }),
66
+ // split vendor js into its own file
67
+ new webpack.optimize.CommonsChunkPlugin({
68
+ name: 'vendor',
69
+ minChunks: function (module, count) {
70
+ // any required modules inside node_modules are extracted to vendor
71
+ return (
72
+ module.resource &&
73
+ /\.js$/.test(module.resource) &&
74
+ module.resource.indexOf(
75
+ path.join(__dirname, '../node_modules')
76
+ ) === 0
77
+ )
78
+ }
79
+ }),
80
+ // extract webpack runtime and module manifest to its own file in order to
81
+ // prevent vendor hash from being updated whenever app bundle is updated
82
+ new webpack.optimize.CommonsChunkPlugin({
83
+ name: 'manifest',
84
+ chunks: ['vendor']
85
+ }),
86
+ // copy custom static assets
87
+ new CopyWebpackPlugin([
88
+ {
89
+ from: path.resolve(__dirname, '../demo/static'),
90
+ to: config.build.assetsSubDirectory,
91
+ ignore: ['.*']
92
+ }
93
+ ])
94
+ ]
95
+ })
96
+
97
+ if (config.build.productionGzip) {
98
+ var CompressionWebpackPlugin = require('compression-webpack-plugin')
99
+
100
+ webpackConfig.plugins.push(
101
+ new CompressionWebpackPlugin({
102
+ asset: '[path].gz[query]',
103
+ algorithm: 'gzip',
104
+ test: new RegExp(
105
+ '\\.(' +
106
+ config.build.productionGzipExtensions.join('|') +
107
+ ')$'
108
+ ),
109
+ threshold: 10240,
110
+ minRatio: 0.8
111
+ })
112
+ )
113
+ }
114
+
115
+ if (config.build.bundleAnalyzerReport) {
116
+ var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
117
+ webpackConfig.plugins.push(new BundleAnalyzerPlugin())
118
+ }
119
+
120
+ module.exports = webpackConfig
@@ -0,0 +1,6 @@
1
+ var merge = require('webpack-merge')
2
+ var prodEnv = require('./prod.env')
3
+
4
+ module.exports = merge(prodEnv, {
5
+ NODE_ENV: '"development"'
6
+ })