resolver-egretimp-plus 0.0.4

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 (121) hide show
  1. package/babel.config.js +14 -0
  2. package/dist/index.js +2 -0
  3. package/dist/index.js.LICENSE.txt +8 -0
  4. package/dist/theme/element/index.css +1 -0
  5. package/dist/theme/element/src/components/card.scss +4 -0
  6. package/dist/theme/element/src/components/collapse.scss +16 -0
  7. package/dist/theme/element/src/components/date.scss +13 -0
  8. package/dist/theme/element/src/components/form.scss +54 -0
  9. package/dist/theme/element/src/components/index.scss +42 -0
  10. package/dist/theme/element/src/components/input.scss +15 -0
  11. package/dist/theme/element/src/components/message.scss +31 -0
  12. package/dist/theme/element/src/components/scrollbar.scss +14 -0
  13. package/dist/theme/element/src/components/select.scss +17 -0
  14. package/dist/theme/element/src/components/steps.scss +6 -0
  15. package/dist/theme/element/src/components/table.scss +8 -0
  16. package/dist/theme/element/src/components/tabs.scss +68 -0
  17. package/dist/theme/element/src/components/tree.scss +0 -0
  18. package/dist/theme/element/src/index.scss +79 -0
  19. package/index.js +17 -0
  20. package/package.json +45 -0
  21. package/scripts/gulpfile.mjs +73 -0
  22. package/scripts/webpack.config.js +81 -0
  23. package/src/analysisComponent.jsx +166 -0
  24. package/src/components/helper/button.js +17 -0
  25. package/src/components/helper/dock.js +120 -0
  26. package/src/components/icons/question-filled.vue +13 -0
  27. package/src/components/packages/CmiButton.vue +84 -0
  28. package/src/components/packages/CmiCalendar.vue +138 -0
  29. package/src/components/packages/CmiCell.vue +34 -0
  30. package/src/components/packages/CmiCheckbox.vue +63 -0
  31. package/src/components/packages/CmiDatetimePicker.vue +84 -0
  32. package/src/components/packages/CmiDropdownMenu.vue +57 -0
  33. package/src/components/packages/CmiInput.vue +45 -0
  34. package/src/components/packages/CmiLink.vue +28 -0
  35. package/src/components/packages/CmiPicker.vue +120 -0
  36. package/src/components/packages/CmiRadio.vue +29 -0
  37. package/src/components/packages/CmiSearch.vue +39 -0
  38. package/src/components/packages/CmiSelect.vue +84 -0
  39. package/src/components/packages/CustomComponentCard.vue +40 -0
  40. package/src/components/packages/CustomComponentCardH5.vue +40 -0
  41. package/src/components/packages/CustomComponentCol.vue +69 -0
  42. package/src/components/packages/CustomComponentColH5.vue +8 -0
  43. package/src/components/packages/CustomComponentCollapse.vue +183 -0
  44. package/src/components/packages/CustomComponentCollapseH5.vue +37 -0
  45. package/src/components/packages/CustomComponentCycle.vue +95 -0
  46. package/src/components/packages/CustomComponentCycleTabPane.vue +92 -0
  47. package/src/components/packages/CustomComponentDialog.vue +162 -0
  48. package/src/components/packages/CustomComponentEditor.vue +43 -0
  49. package/src/components/packages/CustomComponentFormLayout.vue +63 -0
  50. package/src/components/packages/CustomComponentFormLayoutH5.vue +55 -0
  51. package/src/components/packages/CustomComponentGrid.vue +29 -0
  52. package/src/components/packages/CustomComponentGridCol.vue +29 -0
  53. package/src/components/packages/CustomComponentInputDialog.vue +144 -0
  54. package/src/components/packages/CustomComponentPlain.vue +80 -0
  55. package/src/components/packages/CustomComponentRow.vue +67 -0
  56. package/src/components/packages/CustomComponentSelectEmployees.vue +133 -0
  57. package/src/components/packages/CustomComponentSendMail.vue +72 -0
  58. package/src/components/packages/CustomComponentSteps.vue +41 -0
  59. package/src/components/packages/CustomComponentTabPane.vue +41 -0
  60. package/src/components/packages/CustomComponentTabPaneH5.vue +30 -0
  61. package/src/components/packages/CustomComponentTable.jsx +406 -0
  62. package/src/components/packages/CustomComponentTableH5.vue +58 -0
  63. package/src/components/packages/CustomComponentTabs.vue +75 -0
  64. package/src/components/packages/CustomComponentTabsH5.vue +86 -0
  65. package/src/components/packages/CustomComponentTree.vue +28 -0
  66. package/src/components/packages/ElButton.vue +90 -0
  67. package/src/components/packages/ElCheckbox.vue +55 -0
  68. package/src/components/packages/ElDatePicker.vue +58 -0
  69. package/src/components/packages/ElInput.vue +23 -0
  70. package/src/components/packages/ElInputNumber.vue +54 -0
  71. package/src/components/packages/ElPagination.vue +56 -0
  72. package/src/components/packages/ElRadio.vue +44 -0
  73. package/src/components/packages/ElSelect.vue +73 -0
  74. package/src/components/packages/ElText.vue +48 -0
  75. package/src/components/packages/ElTimePicker.vue +34 -0
  76. package/src/components/patchComponents.js +46 -0
  77. package/src/components/styles/CustomComponenTable.scss +125 -0
  78. package/src/components/tabs/index.js +8 -0
  79. package/src/components/tabs/src/constants.js +23 -0
  80. package/src/components/tabs/src/tab-bar.js +8 -0
  81. package/src/components/tabs/src/tab-bar.vue +92 -0
  82. package/src/components/tabs/src/tab-nav.jsx +413 -0
  83. package/src/components/tabs/src/tab-pane.js +15 -0
  84. package/src/components/tabs/src/tab-pane.vue +80 -0
  85. package/src/components/tabs/src/tabs.jsx +217 -0
  86. package/src/components/tabs/style/css.js +2 -0
  87. package/src/components/tabs/style/index.js +2 -0
  88. package/src/components/thirdPartyFrame/index.js +32 -0
  89. package/src/components/thirdPartyFrame/src/ThirdPartyFrame.vue +123 -0
  90. package/src/hooks/index.js +129 -0
  91. package/src/hooks/pageConfig.js +20 -0
  92. package/src/index.jsx +140 -0
  93. package/src/renderer.jsx +68 -0
  94. package/src/rules/eventsSupplement.js +439 -0
  95. package/src/rules/parseCondition.js +359 -0
  96. package/src/rules/ruleUtils.js +208 -0
  97. package/src/rules/rulesDriver.js +118 -0
  98. package/src/theme/element/components/card.scss +4 -0
  99. package/src/theme/element/components/collapse.scss +16 -0
  100. package/src/theme/element/components/date.scss +13 -0
  101. package/src/theme/element/components/form.scss +54 -0
  102. package/src/theme/element/components/index.scss +42 -0
  103. package/src/theme/element/components/input.scss +15 -0
  104. package/src/theme/element/components/message.scss +31 -0
  105. package/src/theme/element/components/scrollbar.scss +14 -0
  106. package/src/theme/element/components/select.scss +17 -0
  107. package/src/theme/element/components/steps.scss +6 -0
  108. package/src/theme/element/components/table.scss +8 -0
  109. package/src/theme/element/components/tabs.scss +68 -0
  110. package/src/theme/element/components/tree.scss +0 -0
  111. package/src/theme/element/index.scss +79 -0
  112. package/src/utils/common.js +230 -0
  113. package/src/utils/const.js +198 -0
  114. package/src/utils/defaultVal.js +23 -0
  115. package/src/utils/format.js +19 -0
  116. package/src/utils/index.js +4 -0
  117. package/src/utils/is.js +69 -0
  118. package/src/utils/preserveFunc.js +33 -0
  119. package/src/utils/render.jsx +714 -0
  120. package/src/utils/request.js +10 -0
  121. package/src/utils/valid.js +71 -0
@@ -0,0 +1,4 @@
1
+
2
+ .el-card__body {
3
+ padding: var(--prmary-marign-second) var(--prmary-marign) 0 var(--prmary-marign);
4
+ }
@@ -0,0 +1,16 @@
1
+
2
+ .el-collapse {
3
+ --el-collapse-header-height: 22px;
4
+ --el-collapse-header-font-size: 14px;
5
+ // margin-bottom: var(--prmary-marign);
6
+ .el-collapse-item__header {
7
+ padding-bottom: 12px;
8
+ box-sizing: content-box;
9
+ }
10
+ .el-collapse-item__content {
11
+ padding-bottom: 0;
12
+ }
13
+ .el-collapse-item__wrap {
14
+ margin-right: calc(var(--prmary-marign) - var(--prmary-marign) * 2);
15
+ }
16
+ }
@@ -0,0 +1,13 @@
1
+ // 日期样式调整
2
+ .el-date-editor {
3
+ .el-input__wrapper {
4
+ position: relative;
5
+ .el-input__prefix {
6
+ position: absolute;
7
+ right: 0;
8
+ }
9
+ .el-input__suffix {
10
+ margin-right: 16px;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,54 @@
1
+
2
+ .el-form {
3
+ .custom-form-item {
4
+ display: flex;
5
+ align-items: center;
6
+ & > .el-form-item__label {
7
+ // 表单label中使用弹性居中
8
+ display: flex;
9
+ align-items: center;
10
+
11
+ // 不需要自带的必填*提示符合
12
+ &::before {
13
+ display: none;
14
+ }
15
+ }
16
+ .custom-label {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ height: 16px;
20
+
21
+ .custom-label-content {
22
+ display: -webkit-box;
23
+ line-height: 16px;
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ -webkit-line-clamp: 2;
27
+ -webkit-box-orient: vertical;
28
+ text-align: right;
29
+ }
30
+ }
31
+ }
32
+ .label-position-right {
33
+ .el-form-item__label {
34
+ justify-content: flex-end;
35
+
36
+ }
37
+ }
38
+ .label-position-left {
39
+ .el-form-item__label {
40
+ justify-content: flex-start;
41
+ }
42
+ }
43
+ .label-position-top {
44
+ display: block;
45
+ .el-form-item__label {
46
+ display: block;
47
+ width: 100% !important;
48
+ }
49
+ }
50
+ .el-form-item {
51
+ margin-bottom: var(--prmary-marign);
52
+ margin-right: var(--prmary-marign);
53
+ }
54
+ }
@@ -0,0 +1,42 @@
1
+ @forward 'element-plus/theme-chalk/src/common/var.scss' with (
2
+ $md: 700px,
3
+ $lg: 1560px,
4
+ $colors: (
5
+ // 'primary': (
6
+ // 'base': green,
7
+ // ),
8
+ ),
9
+ );
10
+ @use "element-plus/theme-chalk/src/index.scss" as *;
11
+
12
+ :root {
13
+ --el-text-color-regular: #646a73;
14
+ --el-font-family: 'PingFang SC, sans-serif';
15
+ --el-font-size-base: 14px;
16
+ --el-disabled-text-color: #1f2329;
17
+ --el-disabled-bg-color: #eff0f1;
18
+ --el-input-text-color: #1f2329;
19
+ --el-color-primary: #3271FE;
20
+ --el-disabled-border-color: #d0d3d6;
21
+ --el-border-color: #d0d3d6;
22
+ --el-border-color-light: #d0d3d6;
23
+ --el-border-color-lighter: #d0d3d6;
24
+ --el-fill-color-lighter: #fafafa;
25
+ --el-fill-color-light: #eff0f1;
26
+
27
+ --prmary-marign-second: 12px;
28
+ --prmary-marign: 16px
29
+ }
30
+
31
+ @import './card.scss';
32
+ @import './collapse.scss';
33
+ @import './date.scss';
34
+ @import './form.scss';
35
+ @import './input.scss';
36
+ @import './message.scss';
37
+ @import './scrollbar.scss';
38
+ @import './select.scss';
39
+ @import './table.scss';
40
+ @import './tabs.scss';
41
+ @import './tree.scss';
42
+ @import './steps.scss';
@@ -0,0 +1,15 @@
1
+
2
+ .el-input {
3
+ --el-input-text-color: #1f2329;
4
+ }
5
+
6
+ .el-input__wrapper {
7
+ .el-input__clear {
8
+ svg path {
9
+ d: path("M 764.288 214.592 L 512 466.88 L 259.712 214.592 a 31.936 31.936 0 0 0 -45.12 45.12 L 466.752 512 L 214.528 764.224 a 31.936 31.936 0 1 0 45.12 45.184 L 512 557.184 l 252.288 252.288 a 31.936 31.936 0 0 0 45.12 -45.12 L 557.12 512.064 l 252.288 -252.352 a 31.936 31.936 0 1 0 -45.12 -45.184 Z")
10
+ }
11
+ }
12
+ .el-input__suffix-inner {
13
+ flex-direction: row-reverse;
14
+ }
15
+ }
@@ -0,0 +1,31 @@
1
+
2
+ .el-message {
3
+ &.el-message--info {
4
+ --el-message-bg-color: #EAF0FE;
5
+ --el-message-border-color: #3271FE;
6
+ --el-message-text-color: #3271FE;
7
+ }
8
+ &.el-message--error {
9
+ --el-message-border-color: #F54A45;
10
+ }
11
+ &.el-message--warning {
12
+ --el-message-border-color: #FFB938;
13
+ }
14
+ &.el-message--success {
15
+ --el-message-border-color: #34C724;
16
+ }
17
+
18
+ --el-message-padding: 15px 15px;
19
+ top: 180px;
20
+ align-items: start;
21
+ .el-message__icon, .el-message__closeBtn {
22
+ margin-top: 1px;
23
+ font-size: 20px;
24
+ }
25
+ .el-message__content {
26
+ color: var(--el-disabled-text-color)
27
+ }
28
+ .el-message__content {
29
+ line-height: 22px;
30
+ }
31
+ }
@@ -0,0 +1,14 @@
1
+
2
+ // 调整滑动条规范
3
+ .el-scrollbar__bar.is-horizontal {
4
+ height: 8px;
5
+ &:hover {
6
+ height: 12px;
7
+ }
8
+ }
9
+ .el-scrollbar__bar.is-vertical {
10
+ width: 8px;
11
+ &:hover {
12
+ width: 12px;
13
+ }
14
+ }
@@ -0,0 +1,17 @@
1
+
2
+ // select样式调整
3
+ .el-select__icon {
4
+ color: #646A73;
5
+ font-size: 18px;
6
+ }
7
+ .el-select__wrapper {
8
+ padding: 4px 8px;
9
+ .el-select__selection.is-near {
10
+ margin-left: 0;
11
+ }
12
+ }
13
+
14
+ /* 覆盖下拉选中文字的样式 */
15
+ .el-select-dropdown__item.is-selected {
16
+ font-weight: 400;
17
+ }
@@ -0,0 +1,6 @@
1
+ .el-step.is-horizontal {
2
+ .el-step__line {
3
+ top: 50%;
4
+ transform: translateY(-50%);
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+
2
+ .el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column::before, .el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column::before, .el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column::before, .el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column::before, .el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column::before, .el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column::before, .el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column::before, .el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column::before, .el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column::before, .el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column::before, .el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column::before, .el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column::before{
3
+ height: 100%;
4
+ }
5
+
6
+ .el-table th.el-table__cell.is-leaf, .el-table td.el-table__cell{
7
+ border-bottom: 0px;
8
+ }
@@ -0,0 +1,68 @@
1
+
2
+ .el-tabs {
3
+ display: block;
4
+ border-radius: 4px;
5
+ overflow: hidden;
6
+ &.el-tabs--border-card>.el-tabs__content {
7
+ padding: var(--prmary-marign-second) var(--prmary-marign) var(--prmary-marign) var(--prmary-marign);
8
+ }
9
+ }
10
+ .tabs-level-1 {
11
+ --el-tabs-header-height: 49px;
12
+ &.full-border {
13
+ & > .el-tabs__header {
14
+ .el-tabs__item.is-active {
15
+ border-right: 1px solid var(--el-border-color-light)
16
+ }
17
+ }
18
+ }
19
+ & > .el-tabs__header {
20
+ .el-tabs__item {
21
+ position: relative;
22
+ min-width: 180px;
23
+ max-width: calc(50% + 1px);
24
+ &::after {
25
+ content: "";
26
+ position: absolute;
27
+ display: block;
28
+ right: -1px;
29
+ top: 50%;
30
+ transform: translateY(-50%);
31
+ height: 50%;
32
+ width: 1px;
33
+ background-color: #d0d3d6;
34
+ }
35
+ &:last-child {
36
+ border-right: none;
37
+ &::after {
38
+ display: none;
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ .tabs-level-2 {
46
+ & > .el-tabs__header {
47
+ .el-tabs__nav-wrap::after {
48
+ height: 1px;
49
+ }
50
+ }
51
+ }
52
+ .tabs-level-3 {
53
+ --el-tabs-header-height: 32px;
54
+ &.el-tabs--card > .el-tabs__header {
55
+ border-bottom: none;
56
+ .el-tabs__item {
57
+ border-bottom: none;
58
+ border-left: none;
59
+ border-radius: 4px;
60
+ &.is-active {
61
+ background-color: #eaf0fe;
62
+ }
63
+ }
64
+ .el-tabs__nav {
65
+ border: none;
66
+ }
67
+ }
68
+ }
File without changes
@@ -0,0 +1,79 @@
1
+ @import './components/index.scss';
2
+ * {
3
+ font-family: PingFang SC,sans-serif;
4
+ }
5
+ .custom-form-item.hidden-label {
6
+ & > .el-form-item__label {
7
+ display: none;
8
+ }
9
+ }
10
+ .content-right {
11
+ .el-form-item__content {
12
+ text-align: right;
13
+ justify-content: flex-end;
14
+ }
15
+ }
16
+
17
+ .CustomComponentCollapse:first-child {
18
+ margin-bottom: 12px;
19
+ }
20
+ .CustomComponentCollapse + .CustomComponentCollapse {
21
+ margin-bottom: 12px;
22
+ }
23
+
24
+ .CustomComponentCollapse.is-card:first-child {
25
+ margin-bottom: 16px;
26
+ }
27
+ .CustomComponentCollapse.is-card + .CustomComponentCollapse.is-card {
28
+ margin-bottom: 16px;
29
+ }
30
+
31
+ // 加权
32
+ .CustomComponentCollapse.CustomComponentCollapse.CustomComponentCollapse:last-child {
33
+ margin-bottom: 0;
34
+ }
35
+ .el-collapse-item__arrow {
36
+ margin-right: 0;
37
+ }
38
+
39
+ // 组件弹框样式定义调整
40
+ .custom-component-dialog {
41
+ padding-top: 0px;
42
+ padding-bottom: 0;
43
+
44
+ .el-dialog__header {
45
+ display: none;
46
+ }
47
+ .el-dialog__body {
48
+ height: 100%;
49
+ .header {
50
+ line-height: 46px;
51
+ font-size: 14px;
52
+ font-weight: 500;
53
+ color: #1F2329;
54
+ }
55
+ .content {
56
+ height: 100%;
57
+ box-sizing: border-box;
58
+ // .el-scrollbar__wrap {
59
+ // overflow-x: hidden;
60
+ // }
61
+ // .is-horizontal {
62
+ // display: none;
63
+ // }
64
+ }
65
+ .footer {
66
+ height: 68px;
67
+ text-align: right;
68
+ overflow: hidden;
69
+ .dialog-footer {
70
+ margin-top: 16px;
71
+ }
72
+ }
73
+ }
74
+ &.el-dialog footer {
75
+ position: initial;
76
+ transform: none;
77
+ padding: 0;
78
+ }
79
+ }
package/index.js ADDED
@@ -0,0 +1,17 @@
1
+ export { default as default} from './src/index.jsx'
2
+
3
+ export { default as Renderer} from './src/renderer.jsx'
4
+ import { commonPropsType } from './src/utils/index.js'
5
+
6
+
7
+ const componentPropsType = Object.keys(commonPropsType).reduce((ret, key) => {
8
+ ret[key] = {
9
+ ...commonPropsType[key]
10
+ }
11
+ delete ret[key].getValue
12
+ return ret
13
+ }, {})
14
+
15
+ export {
16
+ componentPropsType
17
+ }
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "resolver-egretimp-plus",
3
+ "version": "0.0.4",
4
+ "description": "交付体验渲染",
5
+ "main": "dist/index.js",
6
+ "exports": {
7
+ "./*": "./*"
8
+ },
9
+ "scripts": {
10
+ "build:package": "webpack --config scripts/webpack.config.js",
11
+ "build:theme": "gulp -f scripts/gulpfile.mjs",
12
+ "build": "pnpm run build:package && pnpm run build:theme"
13
+ },
14
+ "author": "caowb",
15
+ "license": "ISC",
16
+ "devDependencies": {
17
+ "@babel/plugin-transform-runtime": "^7.24.7",
18
+ "@babel/runtime-corejs3": "^7.24.7",
19
+ "@vue/babel-plugin-jsx": "^1.2.2",
20
+ "@vue/cli-plugin-babel": "^5.0.8",
21
+ "@vue/compiler-sfc": "^3.4.29",
22
+ "babel-loader": "^9.1.3",
23
+ "consola": "^3.2.3",
24
+ "gulp": "^4.0.0",
25
+ "gulp-autoprefixer": "^9.0.0",
26
+ "gulp-clean-css": "^4.3.0",
27
+ "gulp-rename": "^2.0.0",
28
+ "gulp-sass": "^5.1.0",
29
+ "less-loader": "^12.2.0",
30
+ "lodash-es": "^4.17.21",
31
+ "mini-css-extract-plugin": "^2.9.0",
32
+ "node-sass": "^9.0.0",
33
+ "sass": "^1.53.0",
34
+ "sass-loader": "^14.2.1",
35
+ "vue-loader": "^17.4.2",
36
+ "webpack": "^5.90.0",
37
+ "webpack-cli": "^5.1.4"
38
+ },
39
+ "dependencies": {
40
+ "@vueuse/core": "^10.11.0",
41
+ "axios": "^1.7.7",
42
+ "element-plus": "^2.7.6",
43
+ "vue3-quill": "^0.3.1"
44
+ }
45
+ }
@@ -0,0 +1,73 @@
1
+ // const path = require('path')
2
+ // const chalk = require('chalk')
3
+ // const gulpSass = require('gulp-sass')
4
+ // const dartSass = require('sass')
5
+ // const autoprefixer = require('gulp-autoprefixer')
6
+ // const cleanCSS = require('gulp-clean-css')
7
+ // const rename = require('gulp-rename')
8
+ // const consola = require('consola')
9
+ // const gulp = require('gulp')
10
+ // const { dest, parallel, series, src } = gulp
11
+
12
+ import path, { dirname } from 'path'
13
+ import { fileURLToPath } from 'url';
14
+ import chalk from 'chalk'
15
+ import gulp from 'gulp'
16
+ import gulpSass from 'gulp-sass'
17
+ import * as dartSass from 'sass'
18
+ import autoprefixer from 'gulp-autoprefixer'
19
+ import cleanCSS from 'gulp-clean-css'
20
+ import rename from 'gulp-rename'
21
+ import consola from 'consola'
22
+
23
+ const { dest, parallel, series, src } = gulp
24
+
25
+ const __filename = fileURLToPath(import.meta.url);
26
+ const __dirname = dirname(__filename);
27
+ const distFolder = path.resolve(__dirname, '../dist/theme/element')
28
+
29
+ function buildThemeChalk() {
30
+ const sass = gulpSass(dartSass)
31
+ const stream = src(path.resolve(__dirname, '../src/theme/element/index.scss'))
32
+ .pipe(sass({
33
+ includePaths: ['../node_modules'] // 添加
34
+ }))
35
+ .pipe(autoprefixer({ cascade: false }))
36
+ .pipe(
37
+ cleanCSS({}, (details) => {
38
+ consola.success(
39
+ `${chalk.cyan(details.name)}: ${chalk.yellow(
40
+ details.stats.originalSize / 1000
41
+ )} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB`
42
+ )
43
+ })
44
+ )
45
+ .pipe(
46
+ rename((path) => {
47
+ })
48
+ )
49
+ .pipe(dest(distFolder))
50
+ stream.on('end', () => {
51
+ console.log('buildThemeChalk task completed');
52
+ });
53
+
54
+ return stream;
55
+ }
56
+
57
+ function copyThemeChalkSource() {
58
+ const stream = src(path.resolve(__dirname, '../src/theme/element/**')).pipe(
59
+ dest(path.resolve(distFolder, 'src'))
60
+ )
61
+ stream.on('end', () => {
62
+ console.log('buildThemeChalk task completed');
63
+ });
64
+
65
+ return stream;
66
+ }
67
+
68
+ const build = parallel(
69
+ copyThemeChalkSource,
70
+ series(buildThemeChalk)
71
+ )
72
+
73
+ export default build
@@ -0,0 +1,81 @@
1
+ const path = require('path')
2
+ const { VueLoaderPlugin } = require('vue-loader')
3
+
4
+ module.exports = {
5
+ mode: 'production',
6
+ entry: path.resolve(__dirname, '../index.js'),
7
+ output: {
8
+ library: {
9
+ // name: 'resolver',
10
+ type: 'module'
11
+ },
12
+ path: path.resolve(__dirname, '../dist'),
13
+ filename: 'index.js'
14
+ },
15
+ module: {
16
+ rules: [
17
+ {
18
+ test:/\.(js|jsx)$/,
19
+ loader: 'babel-loader',
20
+ exclude: file => (
21
+ /node_modules/.test(file) &&
22
+ !/\.vue\.js/.test(file)
23
+ )
24
+ },
25
+ {
26
+ test: /\.vue$/,
27
+ loader: 'vue-loader',
28
+ },
29
+ {
30
+ test: /\.less$/,
31
+ use: [
32
+ 'vue-style-loader',
33
+ 'css-loader',
34
+ 'less-loader'
35
+ ]
36
+ },
37
+ {
38
+ test: /\.scss$/,
39
+ use: [
40
+ 'vue-style-loader',
41
+ 'css-loader',
42
+ 'sass-loader'
43
+ ]
44
+ },
45
+ {
46
+ test: /\.css$/,
47
+ use: [
48
+ 'vue-style-loader',
49
+ 'css-loader'
50
+ ]
51
+ }
52
+ ]
53
+ },
54
+ // devtool: 'source-map',
55
+ resolve: {
56
+ extensions: ['.js', '.json', '.vue', '.jsx'],
57
+ modules: [path.resolve(__dirname, '../node_modules')]
58
+ },
59
+ externals: {
60
+ vue: 'vue',
61
+ 'element-plus': 'element-plus',
62
+ 'vue-router': 'vue-router',
63
+ 'element-plus/es/hooks/index.mjs': 'element-plus/es/hooks/index.mjs',
64
+ '@element-plus/icons-vue': '@element-plus/icons-vue',
65
+ 'element-plus/es/components/icon/index.mjs': 'element-plus/es/components/icon/index.mjs',
66
+ 'element-plus/es/constants/index.mjs': 'element-plus/es/constants/index.mjs',
67
+ 'element-plus/es/utils/index.mjs': 'element-plus/es/utils/index.mjs'
68
+ },
69
+ externalsType: 'module',
70
+ experiments: {
71
+ outputModule: true,
72
+ },
73
+ // watch: true,
74
+ watchOptions: {
75
+ aggregateTimeout: 600,
76
+ ignored: /node_modules/,
77
+ },
78
+ plugins: [
79
+ new VueLoaderPlugin()
80
+ ]
81
+ }