dpzvc-ui 1.0.0 → 1.2.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.
Files changed (140) hide show
  1. package/README.md +102 -18
  2. package/build-style.js +56 -29
  3. package/dist/dpzvc.js +9132 -13154
  4. package/dist/dpzvc.js.map +1 -0
  5. package/dist/dpzvc.min.js +2 -0
  6. package/dist/dpzvc.min.js.map +1 -0
  7. package/dist/styles/base/font.css +1 -0
  8. package/dist/styles/base/reset.css +1 -0
  9. package/dist/styles/base/variable.css +0 -0
  10. package/dist/styles/components/actionSheet.css +1 -0
  11. package/dist/styles/components/badge.css +1 -0
  12. package/dist/styles/components/button.css +1 -0
  13. package/dist/styles/components/card.css +1 -0
  14. package/dist/styles/components/cell-swipe.css +1 -0
  15. package/dist/styles/components/cell.css +1 -0
  16. package/dist/styles/components/checkBox.css +1 -0
  17. package/dist/styles/components/editor.css +1 -0
  18. package/dist/styles/components/header.css +1 -0
  19. package/dist/styles/components/indicator.css +1 -0
  20. package/dist/styles/components/loadmore.css +1 -0
  21. package/dist/styles/components/message.css +1 -0
  22. package/dist/styles/components/modal.css +1 -0
  23. package/dist/styles/components/number.css +1 -0
  24. package/dist/styles/components/picker.css +1 -0
  25. package/dist/styles/components/popup.css +1 -0
  26. package/dist/styles/components/progress.css +1 -0
  27. package/dist/styles/components/prompt.css +1 -0
  28. package/dist/styles/components/radioBox.css +1 -0
  29. package/dist/styles/components/slide-Bar.css +1 -0
  30. package/dist/styles/components/spinner.css +1 -0
  31. package/dist/styles/components/swipe.css +1 -0
  32. package/dist/styles/components/switchBar.css +1 -0
  33. package/dist/styles/components/tab.css +1 -0
  34. package/dist/styles/components/text.css +1 -0
  35. package/dist/styles/components/toTop.css +1 -0
  36. package/dist/styles/components/upload.css +1 -0
  37. package/dist/styles/utils/1px.css +1 -0
  38. package/dist/styles/utils/animation.css +1 -0
  39. package/dist/styles/utils/nowrap.css +1 -0
  40. package/dist-prod/968.b06f8ff038ced2ac25a8.js +3 -0
  41. package/dist-prod/968.b06f8ff038ced2ac25a8.js.LICENSE.txt +5 -0
  42. package/dist-prod/968.b06f8ff038ced2ac25a8.js.map +1 -0
  43. package/dist-prod/actionsheet.6c90edde5704622a1342.chunk.js +2 -0
  44. package/dist-prod/actionsheet.6c90edde5704622a1342.chunk.js.map +1 -0
  45. package/dist-prod/badge.c84c021f3e486ef7d942.chunk.js +2 -0
  46. package/dist-prod/badge.c84c021f3e486ef7d942.chunk.js.map +1 -0
  47. package/dist-prod/button.367cc8c72a5fe6ab23f9.chunk.js +2 -0
  48. package/dist-prod/button.367cc8c72a5fe6ab23f9.chunk.js.map +1 -0
  49. package/dist-prod/card.9408612c4388b6dfa16c.chunk.js +2 -0
  50. package/dist-prod/card.9408612c4388b6dfa16c.chunk.js.map +1 -0
  51. package/dist-prod/cell.9a4993caa97ef40ff5c1.chunk.js +2 -0
  52. package/dist-prod/cell.9a4993caa97ef40ff5c1.chunk.js.map +1 -0
  53. package/dist-prod/cellswipe.2f66e4563a8b0ea4e66a.chunk.js +2 -0
  54. package/dist-prod/cellswipe.2f66e4563a8b0ea4e66a.chunk.js.map +1 -0
  55. package/dist-prod/checkbox.bfb070917fbd916b9246.chunk.js +2 -0
  56. package/dist-prod/checkbox.bfb070917fbd916b9246.chunk.js.map +1 -0
  57. package/dist-prod/guide.92857dbbd3214f172073.chunk.js +2 -0
  58. package/dist-prod/guide.92857dbbd3214f172073.chunk.js.map +1 -0
  59. package/dist-prod/header.ad70269632b1900dc1f0.chunk.js +2 -0
  60. package/dist-prod/header.ad70269632b1900dc1f0.chunk.js.map +1 -0
  61. package/dist-prod/index.html +19 -26
  62. package/dist-prod/indicator.791ff82f539499ebcc6b.chunk.js +2 -0
  63. package/dist-prod/indicator.791ff82f539499ebcc6b.chunk.js.map +1 -0
  64. package/dist-prod/loadmore.766550bbcff49be9ca23.chunk.js +2 -0
  65. package/dist-prod/loadmore.766550bbcff49be9ca23.chunk.js.map +1 -0
  66. package/dist-prod/main.87546d094b4cc2de2d01.js +2 -0
  67. package/dist-prod/main.87546d094b4cc2de2d01.js.map +1 -0
  68. package/dist-prod/main.c3a7cb52315b8816357b.js +2 -0
  69. package/dist-prod/main.c3a7cb52315b8816357b.js.map +1 -0
  70. package/dist-prod/message.878a621e560c57ca9f90.chunk.js +2 -0
  71. package/dist-prod/message.878a621e560c57ca9f90.chunk.js.map +1 -0
  72. package/dist-prod/modal.e4087ee82601de76b61d.chunk.js +2 -0
  73. package/dist-prod/modal.e4087ee82601de76b61d.chunk.js.map +1 -0
  74. package/dist-prod/picker.3cfdf594676698f7ef0b.chunk.js +2 -0
  75. package/dist-prod/picker.3cfdf594676698f7ef0b.chunk.js.map +1 -0
  76. package/dist-prod/popup.f46d0b3c57b2f2d0dfe3.chunk.js +2 -0
  77. package/dist-prod/popup.f46d0b3c57b2f2d0dfe3.chunk.js.map +1 -0
  78. package/dist-prod/progress.dd5c95445a81a94ae446.chunk.js +2 -0
  79. package/dist-prod/progress.dd5c95445a81a94ae446.chunk.js.map +1 -0
  80. package/dist-prod/prompt.793312afaee597d3e887.chunk.js +2 -0
  81. package/dist-prod/prompt.793312afaee597d3e887.chunk.js.map +1 -0
  82. package/dist-prod/radiobox.f684060ebfc8df084d9c.chunk.js +2 -0
  83. package/dist-prod/radiobox.f684060ebfc8df084d9c.chunk.js.map +1 -0
  84. package/dist-prod/rater.18672a3b68842b5ec0ae.chunk.js +2 -0
  85. package/dist-prod/rater.18672a3b68842b5ec0ae.chunk.js.map +1 -0
  86. package/dist-prod/slidebar.58eb1b07a6995df3fc47.chunk.js +2 -0
  87. package/dist-prod/slidebar.58eb1b07a6995df3fc47.chunk.js.map +1 -0
  88. package/dist-prod/spinner.2c686ac402a1e1b29270.chunk.js +2 -0
  89. package/dist-prod/spinner.2c686ac402a1e1b29270.chunk.js.map +1 -0
  90. package/dist-prod/swipe.dcc1ebcc206dae26a67e.chunk.js +2 -0
  91. package/dist-prod/swipe.dcc1ebcc206dae26a67e.chunk.js.map +1 -0
  92. package/dist-prod/switchbar.91b45e05df73e20227ce.chunk.js +2 -0
  93. package/dist-prod/switchbar.91b45e05df73e20227ce.chunk.js.map +1 -0
  94. package/dist-prod/tab.b351fd11783b6de80246.chunk.js +2 -0
  95. package/dist-prod/tab.b351fd11783b6de80246.chunk.js.map +1 -0
  96. package/dist-prod/text.c41d6ba9644f7037d1e3.chunk.js +2 -0
  97. package/dist-prod/text.c41d6ba9644f7037d1e3.chunk.js.map +1 -0
  98. package/dist-prod/totop.cb15a38b541189094b32.chunk.js +2 -0
  99. package/dist-prod/totop.cb15a38b541189094b32.chunk.js.map +1 -0
  100. package/dist-prod/upload.e953d4a54b0a230de7d6.chunk.js +2 -0
  101. package/dist-prod/upload.e953d4a54b0a230de7d6.chunk.js.map +1 -0
  102. package/dist-prod/vendors.5b7cff021a01dbbbcdf2.js +3 -0
  103. package/dist-prod/vendors.5b7cff021a01dbbbcdf2.js.LICENSE.txt +5 -0
  104. package/dist-prod/vendors.5b7cff021a01dbbbcdf2.js.map +1 -0
  105. package/package.json +33 -27
  106. package/postcss.config.js +5 -0
  107. package/src/components/app.vue +1 -1
  108. package/src/components/upload/upload.vue +2 -1
  109. package/src/config/config.js +1 -1
  110. package/src/index.js +115 -49
  111. package/src/lib/MegaPixImage.js +59 -154
  112. package/src/main.js +18 -60
  113. package/src/router.js +30 -223
  114. package/src/styles/base/reset.less +77 -11
  115. package/src/styles/components/badge.less +2 -0
  116. package/src/styles/components/button.less +1 -0
  117. package/src/styles/components/checkBox.less +2 -0
  118. package/src/styles/components/header.less +2 -0
  119. package/src/styles/components/indicator.less +2 -0
  120. package/src/styles/components/modal.less +2 -0
  121. package/src/styles/components/number.less +2 -0
  122. package/src/styles/components/picker.less +2 -0
  123. package/src/styles/components/progress.less +2 -0
  124. package/src/styles/components/radioBox.less +2 -0
  125. package/src/styles/components/slide-Bar.less +2 -0
  126. package/src/styles/components/spinner.less +1 -0
  127. package/src/styles/components/tab.less +2 -0
  128. package/src/styles/components/text.less +2 -0
  129. package/src/styles/components/toTop.less +2 -0
  130. package/src/styles/utils/1px.less +2 -0
  131. package/src/styles/utils/nowrap.less +1 -1
  132. package/src/template/index.ejs +34 -20
  133. package/src/utils/util.js +1 -1
  134. package/src/views/Header.vue +6 -6
  135. package/src/views/Progress.vue +2 -2
  136. package/webpack.base.config.js +77 -70
  137. package/webpack.dev.config.js +39 -66
  138. package/webpack.dist.dev.config.js +45 -40
  139. package/webpack.dist.prod.config.js +54 -46
  140. package/webpack.prod.config.js +41 -70
@@ -1,26 +1,40 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="zh-CN">
3
3
  <head>
4
- <title>丁平中vue2.x组件库使用预览</title>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
4
+ <meta charset="UTF-8">
5
+ <title>丁平中vc移动端组件</title>
6
+ <meta name="viewport"
7
+ content="width=device-width,
8
+ initial-scale=1.0,
9
+ maximum-scale=1.0,
10
+ minimum-scale=1.0">
11
+ <style>
12
+ html, body {
13
+ width: 100%;
14
+ height: 100%;
15
+ margin: 0;
16
+ }
17
+ </style>
7
18
  </head>
8
19
  <body>
9
- <div id="app"></div>
10
- <script>
11
- (function (doc, win) {
12
- var docEl = doc.documentElement,
13
- resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
14
- recalc = function () {
15
- var clientWidth = docEl.clientWidth;
16
- if (!clientWidth) return;
17
- docEl.style.fontSize = 100 * (clientWidth / 375) + 'px';
18
- };
19
- // Abort if browser does not support addEventListener
20
- if (!doc.addEventListener) return;
21
- win.addEventListener(resizeEvt, recalc, false);
22
- doc.addEventListener('DOMContentLoaded', recalc, false);
23
- })(document, window);
24
- </script>
20
+ <div id="app"></div>
21
+
22
+ <script>
23
+ (function (doc, win) {
24
+ var docEl = doc.documentElement;
25
+
26
+ function recalc() {
27
+ var clientWidth = docEl.clientWidth;
28
+ if (!clientWidth) return;
29
+
30
+ if (clientWidth > 750) clientWidth = 750;
31
+
32
+ docEl.style.fontSize = 100 * (clientWidth / 375) + 'px';
33
+ }
34
+
35
+ win.addEventListener('resize', recalc);
36
+ doc.addEventListener('DOMContentLoaded', recalc);
37
+ })(document, window);
38
+ </script>
25
39
  </body>
26
- </html>
40
+ </html>
package/src/utils/util.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Created by lcfevr on 16/7/18.
2
+ * Created by yishide on 16/7/18.
3
3
  */
4
4
  import Config from '../config/config'
5
5
  //
@@ -1,18 +1,18 @@
1
1
  <template>
2
2
  <div class="Header">
3
3
  <div class="item">
4
- <Header title="Header" :fixed="fixed"></Header>
4
+ <DpHeader title="Header" :fixed="fixed"></DpHeader>
5
5
  </div>
6
6
  <div class="item">
7
- <Header title="Header" :fixed="fixed">
7
+ <DpHeader title="Header" :fixed="fixed">
8
8
  <span slot="right" @click="share">分享</span>
9
- </Header>
9
+ </DpHeader>
10
10
  </div>
11
11
  <div class="item">
12
- <Header title="Header" :fixed="fixed">
12
+ <DpHeader title="Header" :fixed="fixed">
13
13
  <span slot="left">返回</span>
14
14
  <span slot="right" @click="share">分享</span>
15
- </Header>
15
+ </DpHeader>
16
16
  </div>
17
17
  </div>
18
18
  </template>
@@ -20,7 +20,7 @@
20
20
  <script>
21
21
 
22
22
  export default {
23
- name: "header",
23
+ name: "dp-header",
24
24
 
25
25
  data(){
26
26
  return {
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <div class="Progress">
3
- <Progress v-model="progress" :barHeight="barHeight"></Progress>
3
+ <DpProgress v-model="progress" :barHeight="barHeight"></DpProgress>
4
4
  </div>
5
5
  </template>
6
6
 
7
7
  <script>
8
8
  export default {
9
- name: "progress",
9
+ name: "dp-progress",
10
10
  data(){
11
11
  return {
12
12
  progress:0,
@@ -1,74 +1,81 @@
1
- /**
2
- * 公共配置
3
- */
4
- var path = require('path');
5
- function resolve (dir) {
6
- return path.join(__dirname, '.', dir)
7
- }
1
+ const path = require('path');
2
+ const { VueLoaderPlugin } = require('vue-loader');
8
3
 
9
4
  module.exports = {
10
- // 加载器
11
- module: {
12
- // https://doc.webpack-china.org/guides/migrating/#module-loaders-module-rules
13
- rules: [
14
- {
15
- // https://vue-loader.vuejs.org/en/configurations/extract-css.html
16
- test: /\.vue$/,
17
- loader: 'vue-loader',
18
- options: {
19
- loaders: {
20
- css: 'vue-style-loader!css-loader',
21
- less: 'vue-style-loader!css-loader!less-loader'
22
- },
23
- postLoaders: {
24
- html: 'babel-loader'
25
- }
26
- }
27
- },
28
- {
29
- test: /\.js$/,
30
- query:{
31
- presets: ['es2015','stage-0']
32
- },
33
- loader: 'babel-loader',
34
- exclude: /node_modules/
35
- },
36
- {
37
- test: /\.css$/,
38
- use: [
39
- 'style-loader',
40
- 'css-loader',
41
- 'autoprefixer-loader'
42
- ]
43
- },
44
- {
45
- test: /\.less$/,
46
- use: [
47
- 'style-loader',
48
- 'css-loader',
49
- 'less-loader'
50
- ]
51
- },
52
- {
53
- test: /\.scss$/,
54
- use: [
55
- 'style-loader',
56
- 'css-loader',
57
- 'sass-loader?sourceMap'
58
- ]
59
- },
60
- { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=8192'},
61
- { test: /\.(html|tpl)$/, loader: 'html-loader' }
5
+ entry: {
6
+ main: path.resolve(__dirname, 'src/main.js')
7
+ },
8
+ output: {
9
+ path: path.resolve(__dirname, 'dist'),
10
+ filename: '[name].[contenthash:8].js', // webpack5 推荐使用 contenthash
11
+ publicPath: '/'
12
+ },
13
+ resolve: {
14
+ extensions: ['.js', '.vue', '.json'],
15
+ alias: {
16
+ 'vue$': 'vue/dist/vue.esm.js',
17
+ '@': path.resolve(__dirname, 'src')
18
+ }
19
+ },
20
+ module: {
21
+ rules: [
22
+ // Vue 文件
23
+ {
24
+ test: /\.vue$/,
25
+ loader: 'vue-loader'
26
+ },
27
+ // JS 文件
28
+ {
29
+ test: /\.js$/,
30
+ exclude: /node_modules/,
31
+ use: 'babel-loader'
32
+ },
33
+ // CSS 文件
34
+ {
35
+ test: /\.css$/,
36
+ use: [
37
+ 'vue-style-loader',
38
+ {
39
+ loader: 'css-loader',
40
+ options: {
41
+ importLoaders: 1
42
+ }
43
+ },
44
+ 'postcss-loader'
62
45
  ]
63
- },
64
-
65
-
66
-
67
- resolve: {
68
- extensions: ['.js', '.vue'],
69
- alias: {
70
- 'vue': 'vue/dist/vue.esm.js',
71
- '@': resolve('src/components')
46
+ },
47
+ // LESS 文件
48
+ {
49
+ test: /\.less$/,
50
+ use: [
51
+ 'vue-style-loader',
52
+ {
53
+ loader: 'css-loader',
54
+ options: {
55
+ importLoaders: 2
56
+ }
57
+ },
58
+ 'postcss-loader',
59
+ 'less-loader'
60
+ ]
61
+ },
62
+ // 图片、字体等资源
63
+ {
64
+ test: /\.(png|jpe?g|gif|svg|eot|ttf|woff2?)$/,
65
+ type: 'asset', // webpack5 新资源模块
66
+ parser: {
67
+ dataUrlCondition: {
68
+ maxSize: 10 * 1024 // 10kb
69
+ }
70
+ },
71
+ generator: {
72
+ filename: 'assets/[name].[hash:7][ext]'
72
73
  }
73
- }
74
- };
74
+ }
75
+ ]
76
+ },
77
+ plugins: [
78
+ new VueLoaderPlugin()
79
+ ],
80
+ devtool: 'source-map'
81
+ };
@@ -1,67 +1,40 @@
1
- /**
2
- * 本地预览
3
- */
4
-
5
- var path = require('path');
6
- var fs = require('fs');
7
- var webpack = require('webpack');
8
- // var ExtractTextPlugin = require('extract-text-webpack-plugin');
9
- var HtmlWebpackPlugin = require('html-webpack-plugin');
10
- var merge = require('webpack-merge');
11
- var webpackBaseConfig = require('./webpack.base.config.js');
12
- var ExtractTextPlugin = require('extract-text-webpack-plugin');
13
- var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin');
14
-
15
-
16
- process.env.NODE_ENV = '"development"'
17
- module.exports = merge(webpackBaseConfig, {
18
- // 入口
19
- entry: {
20
- main: './src/main',
21
- vendors: ['vue', 'vue-router']
22
- },
23
- // 输出
24
- output: {
25
- path:path.join(__dirname, './example'),
26
- publicPath: '',
27
- filename: '[name].js',
28
- chunkFilename: '[name].chunk.js'
29
- },
30
- resolve: {
31
- alias: {
32
- dpzvc: './src/index',
33
- vue: 'vue/dist/vue.js'
34
- }
35
- },
36
- plugins: [
37
-
38
- new webpack.DefinePlugin({
39
- 'process.env.NODE_ENV': process.env.NODE_ENV,
40
- }),
41
- new ExtractTextPlugin({ filename: '[name].css', disable: true, allChunks: true }),
42
- new webpack.optimize.CommonsChunkPlugin({ name: 'vendors', filename: 'vendor.bundle.js' }),
43
- new webpack.LoaderOptionsPlugin({
44
- // test: /\.xxx$/, // may apply this only for some modules
45
- options: {
46
- babel:{
47
- presets: ['es2015','stage-0'],
48
- plugins: ['transform-runtime']
49
- }
50
- }
51
- }),
52
- new HtmlWebpackPlugin({
53
- inject: true,
54
- filename: '../example/index.html',
55
- template: './src/template/index.ejs'
56
- }),
57
- new FriendlyErrorsPlugin()
58
- ],
59
- devServer:{
60
- contentBase:"./",
61
- // host:"192.168.1.101",
62
- // host:"192.168.0.131",
63
- host:"localhost",
64
- port:"3000"
65
- }
66
- });
1
+ const path = require('path');
2
+ const { merge } = require('webpack-merge');
3
+ const webpack = require('webpack');
4
+ const HtmlWebpackPlugin = require('html-webpack-plugin');
5
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
6
+ const baseConfig = require('./webpack.base.config.js');
67
7
 
8
+ module.exports = merge(baseConfig, {
9
+ mode: 'development',
10
+ entry: {
11
+ main: path.resolve(__dirname, 'src/main.js'),
12
+ vendors: ['vue', 'vue-router']
13
+ },
14
+ output: {
15
+ path: path.resolve(__dirname, 'dist-dev'),
16
+ filename: '[name].js',
17
+ chunkFilename: '[name].chunk.js',
18
+ publicPath: '/',
19
+ },
20
+ devtool: 'eval-source-map',
21
+ devServer: {
22
+ static: { directory: path.resolve(__dirname, 'dist-dev') },
23
+ compress: true,
24
+ hot: true,
25
+ historyApiFallback: true,
26
+ port: 3000
27
+ },
28
+ plugins: [
29
+ new webpack.HotModuleReplacementPlugin(),
30
+ new HtmlWebpackPlugin({
31
+ template: path.resolve(__dirname,'src/template/index.ejs'),
32
+ inject: true,
33
+ filename: 'index.html'
34
+ }),
35
+ new MiniCssExtractPlugin({
36
+ filename: '[name].css',
37
+ chunkFilename: '[name].chunk.css'
38
+ })
39
+ ]
40
+ });
@@ -1,44 +1,49 @@
1
- var path = require('path');
2
- var webpack = require('webpack');
3
- var merge = require('webpack-merge');
4
- var webpackBaseConfig = require('./webpack.base.config.js');
1
+ /**
2
+ * webpack.dist.dev.config.js
3
+ * 开发环境打包库文件 (Webpack 5)
4
+ */
5
+
6
+ const path = require('path');
7
+ const webpack = require('webpack');
8
+ const { merge } = require('webpack-merge');
9
+ const webpackBaseConfig = require('./webpack.base.config.js');
5
10
 
6
11
  process.env.NODE_ENV = 'production';
7
12
 
8
13
  module.exports = merge(webpackBaseConfig, {
9
- entry: {
10
- main: './src/index.js'
11
- },
12
- output: {
13
- path: path.resolve(__dirname, './dist'),
14
- publicPath: '/dist/',
15
- filename: 'dpzvc.js',
16
- library: 'dpzvc',
17
- libraryTarget: 'umd',
18
- umdNamedDefine: true
19
- },
20
- externals: {
21
- vue: {
22
- root: 'Vue',
23
- commonjs: 'vue',
24
- commonjs2: 'vue',
25
- amd: 'vue'
26
- }
27
- },
28
- plugins: [
29
- new webpack.LoaderOptionsPlugin({
30
- // test: /\.xxx$/, // may apply this only for some modules
31
- options: {
32
- babel:{
33
- presets: ['es2015'],
34
- plugins: ['transform-runtime']
35
- }
36
- }
37
- }),
38
- new webpack.DefinePlugin({
39
- 'process.env': {
40
- NODE_ENV: '"production"'
41
- }
42
- })
43
- ]
44
- });
14
+ mode: 'production',
15
+
16
+ entry: {
17
+ main: path.resolve(__dirname, './src/index.js')
18
+ },
19
+
20
+ output: {
21
+ path: path.resolve(__dirname, './dist'),
22
+ publicPath: '/dist/',
23
+ filename: 'dpzvc.js',
24
+ library: 'dpzvc',
25
+ libraryTarget: 'umd',
26
+ umdNamedDefine: true,
27
+ clean: false, // webpack5 新增,每次构建清理旧文件
28
+ },
29
+
30
+ externals: {
31
+ vue: {
32
+ root: 'Vue',
33
+ commonjs: 'vue',
34
+ commonjs2: 'vue',
35
+ amd: 'vue'
36
+ }
37
+ },
38
+
39
+ plugins: [
40
+ new webpack.DefinePlugin({
41
+ 'process.env.NODE_ENV': JSON.stringify('production')
42
+ })
43
+ ],
44
+
45
+ // Webpack 5 建议禁用多余 optimization,因为是库打包
46
+ optimization: {
47
+ minimize: false, // 开发库打包通常不压缩
48
+ },
49
+ });
@@ -1,50 +1,58 @@
1
- var path = require('path');
2
- var webpack = require('webpack');
3
- var merge = require('webpack-merge');
4
- var webpackBaseConfig = require('./webpack.base.config.js');
1
+ /**
2
+ * webpack.dist.prod.config.js
3
+ * 生产环境打包库文件 (Webpack 5)
4
+ */
5
+
6
+ const path = require('path');
7
+ const webpack = require('webpack');
8
+ const TerserPlugin = require('terser-webpack-plugin');
9
+ const { merge } = require('webpack-merge');
10
+ const webpackBaseConfig = require('./webpack.base.config.js');
5
11
 
6
12
  process.env.NODE_ENV = 'production';
7
13
 
8
14
  module.exports = merge(webpackBaseConfig, {
9
- entry: {
10
- main: './src/index.js'
11
- },
12
- output: {
13
- path: path.resolve(__dirname, './dist'),
14
- publicPath: '/dist/',
15
- filename: 'dpzvc.min.js',
16
- library: 'dpzvc',
17
- libraryTarget: 'umd',
18
- umdNamedDefine: true
19
- },
20
- externals: {
21
-
22
- vue: {
23
- root: 'Vue',
24
- commonjs: 'vue',
25
- commonjs2: 'vue',
26
- amd: 'vue'
27
- }
28
- },
29
- plugins: [
30
- new webpack.DefinePlugin({
31
- 'process.env.NODE_ENV': '"production"'
32
- }),
33
- new webpack.LoaderOptionsPlugin({
34
- // test: /\.xxx$/, // may apply this only for some modules
35
- options: {
36
- babel:{
37
- presets: ['es2015','stage-0'],
38
- plugins: ['transform-runtime']
39
- }
40
- }
41
- }),
42
- new webpack.optimize.UglifyJsPlugin({
43
- compress: {
44
- warnings: false,
45
- drop_debugger: true,
46
- drop_console: true
47
- }
48
- })
49
- ]
50
- });
15
+ mode: 'production',
16
+
17
+ entry: {
18
+ main: path.resolve(__dirname, './src/index.js')
19
+ },
20
+
21
+ output: {
22
+ path: path.resolve(__dirname, './dist'),
23
+ publicPath: '/dist/',
24
+ filename: 'dpzvc.min.js',
25
+ library: 'dpzvc',
26
+ libraryTarget: 'umd',
27
+ umdNamedDefine: true,
28
+ clean: false // webpack5 新增,每次构建清理旧文件
29
+ },
30
+
31
+ externals: {
32
+ vue: {
33
+ root: 'Vue',
34
+ commonjs: 'vue',
35
+ commonjs2: 'vue',
36
+ amd: 'vue'
37
+ }
38
+ },
39
+
40
+ optimization: {
41
+ minimize: true,
42
+ minimizer: [
43
+ new TerserPlugin({
44
+ terserOptions: {
45
+ compress: { drop_console: true, drop_debugger: true },
46
+ output: { comments: false },
47
+ },
48
+ extractComments: false, // 防止生成 LICENSE.txt
49
+ })
50
+ ],
51
+ },
52
+
53
+ plugins: [
54
+ new webpack.DefinePlugin({
55
+ 'process.env.NODE_ENV': JSON.stringify('production')
56
+ })
57
+ ]
58
+ });