Browse Source

chore: build disperse modify

richard1015 4 years ago
parent
commit
30f429396a

+ 1 - 1
jd/generate-nutui.js

@@ -8,7 +8,7 @@ config.nav.map(item => {
   item.packages.forEach(element => {
     let { name, show } = element;
     if (show) {
-      importStr += `import ${name} from '/src/packages/${name.toLowerCase()}/index.vue';\n`;
+      importStr += `import ${name} from './packages/${name.toLowerCase()}/index.vue';\n`;
       packages.push(name);
     }
   });

+ 4 - 4
package.json

@@ -39,7 +39,8 @@
     "checked":"npm run generate:file && rm -rf dist/ && tsc",
     "dev": "npm run checked && vite --open",
     "build:site": "npm run checked && vite build",
-    "build": "npm run checked && vite build -c vite.config.build.ts",
+    "build": "npm run checked && vite build --config vite.config.build.ts",
+    "build:disperse": "vite build --config vite.config.build.disperse.ts",
     "serve": "vite preview",
     "upload": "yarn build:site && node ./jd/upload.js",
     "add": "node jd/createComponentMode.js",
@@ -57,7 +58,7 @@
     "@commitlint/cli": "^10.0.0",
     "@commitlint/config-conventional": "^10.0.0",
     "@types/node": "^14.14.31",
-    "@vitejs/plugin-vue": "^1.1.4",
+    "@vitejs/plugin-vue": "^1.1.5",
     "@vue/compiler-sfc": "^3.0.5",
     "@vue/eslint-config-prettier": "^6.0.0",
     "@vue/eslint-config-typescript": "^5.0.2",
@@ -69,10 +70,9 @@
     "husky": "^4.3.0",
     "lint-staged": "^10.5.0",
     "prettier": "^1.19.1",
-    "swiper": "4.0.2",
     "transliteration": "^2.2.0",
     "typescript": "^4.1.5",
-    "vite": "^2.0.2",
+    "vite": "^2.0.5",
     "vite-plugin-md": "^0.5.1"
   },
   "eslintConfig": {

+ 1 - 1
src/config.json

@@ -379,7 +379,7 @@
           "sort": 1,
           "cName": "标签组件",
           "type": "component",
-          "show": true,
+          "show": false,
           "desc": "标签组件",
           "author": "zhenyulei"
         },

+ 0 - 2
src/packages/address/index.vue

@@ -120,9 +120,7 @@ import { reactive, ref, toRefs, watch, nextTick } from 'vue';
 import { createComponent } from '@/utils/create';
 const { componentName, create } = createComponent('address');
 import { TweenMax } from 'gsap';
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     show: {
       type: Boolean,

+ 0 - 2
src/packages/avatar/index.vue

@@ -10,9 +10,7 @@
 import { toRefs, computed } from 'vue';
 import { createComponent } from '@/utils/create';
 const { componentName, create } = createComponent('avatar');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     size: {
       type: String,

+ 21 - 1
src/packages/backtop/demo.vue

@@ -48,4 +48,24 @@ export default createDemo({
 });
 </script>
 
-<style scoped></style>
+<style lang="scss" scoped>
+.demo {
+  .text-data {
+    margin: 0 auto;
+    margin-top: 15px;
+    margin-bottom: 20px;
+    padding-left: 16px;
+    display: flex;
+    align-items: center;
+    width: 100%;
+    height: 46px;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 7px;
+    box-shadow: 0px 1px 7px 0px rgba(237, 238, 241, 1);
+    line-height: 19px;
+    font-family: PingFangSC-Medium;
+    font-size: 13px;
+    color: rgba(102, 102, 102, 1);
+  }
+}
+</style>

+ 4 - 4
src/packages/backtop/doc.md

@@ -21,19 +21,19 @@ app.use(BackTop);
 ### 基本用法
 
 ```html
-    <nut-backtop  elId="elId" ></nut-backtop>
+<nut-backtop  elId="elId" ></nut-backtop>
 ```
 
 ### 设置出现位置
 
 ```html
-    <nut-backtop :distance="200" ></nut-backtop>
+<nut-backtop :distance="200" ></nut-backtop>
 ```
 
 ### 自定义样式
 
 ```html
-    <nut-backtop @click="handleClick" elId="elId" :distance="100" :bottom="90" ><div>无</div></nut-backtop>
+<nut-backtop @click="handleClick" elId="elId" :distance="100" :bottom="90" ><div>无</div></nut-backtop>
 ```
 
 ### 设置样式
@@ -44,7 +44,7 @@ app.use(BackTop);
 ### click事件
 
 ```html
-    <nut-backtop @click="handleClick" ></nut-backtop>
+<nut-backtop @click="handleClick" ></nut-backtop>
 ```
 
 ```html

+ 0 - 21
src/packages/backtop/index.scss

@@ -1,24 +1,3 @@
-.demo {
-  // scroll-behavior: smooth;
-  .text-data {
-    margin: 0 auto;
-    margin-top: 15px;
-    margin-bottom: 20px;
-    padding-left: 16px;
-    display: flex;
-    align-items: center;
-    width: 342px;
-    height: 46px;
-    background: rgba(255, 255, 255, 1);
-    border-radius: 7px;
-    box-shadow: 0px 1px 7px 0px rgba(237, 238, 241, 1);
-    line-height: 19px;
-    font-family: PingFangSC-Medium;
-    font-size: 13px;
-    color: rgba(102, 102, 102, 1);
-  }
-}
-
 .nut-backtop {
   display: none;
   position: fixed;

+ 0 - 2
src/packages/backtop/index.vue

@@ -18,9 +18,7 @@
 import { computed, ref, onMounted, onUnmounted } from 'vue';
 import { createComponent } from '@/utils/create';
 const { create } = createComponent('backtop');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     //距离页面底部
     bottom: {

+ 0 - 2
src/packages/button/index.vue

@@ -22,9 +22,7 @@ export type ButtonType =
   | 'danger';
 export type ButtonSize = 'large' | 'normal' | 'small';
 export type ButtonShape = 'square' | 'round';
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     color: String,
     shape: {

+ 0 - 2
src/packages/cell/index.vue

@@ -36,9 +36,7 @@ import { computed } from 'vue';
 import { createComponent } from '@/utils/create';
 import { useRouter } from 'vue-router';
 const { componentName, create } = createComponent('cell');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     title: { type: String, default: '' },
     subTitle: { type: String, default: '' },

+ 0 - 2
src/packages/infiniteloading/index.vue

@@ -53,9 +53,7 @@ import {
 } from 'vue';
 import { createComponent } from '@/utils/create';
 const { componentName, create } = createComponent('infiniteloading');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     hasMore: {
       type: Boolean,

+ 0 - 2
src/packages/input/index.vue

@@ -54,9 +54,7 @@ import { ref, toRefs, reactive, computed } from 'vue';
 import { createComponent } from '@/utils/create';
 const { create } = createComponent('input');
 import { formatNumber } from './util';
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     type: {
       type: String,

+ 0 - 2
src/packages/inputnumber/index.vue

@@ -28,7 +28,6 @@
 import { computed, reactive, watch, toRefs } from 'vue';
 import { createComponent } from '@/utils/create';
 const { componentName, create } = createComponent('inputnumber');
-import Icon from '@/packages/icon/index.vue';
 interface Events {
   eventName:
     | 'update:modelValue'
@@ -40,7 +39,6 @@ interface Events {
   params: (string | number | Event)[];
 }
 export default create({
-  children: [Icon],
   props: {
     size: {
       type: [String],

+ 0 - 2
src/packages/menuitem/index.vue

@@ -57,9 +57,7 @@ import {
 } from 'vue';
 import { createComponent } from '@/utils/create';
 const { create } = createComponent('menu-item');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     title: {
       type: String,

+ 0 - 2
src/packages/navbar/index.vue

@@ -63,9 +63,7 @@ import { computed, ref } from 'vue';
 import { createComponent } from '@/utils/create';
 import { useRouter } from 'vue-router';
 const { componentName, create } = createComponent('navbar');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     leftShow: { type: Boolean, default: true }, //左侧  是否显示返回
     title: { type: String, default: '' }, //中间  文字标题

+ 0 - 2
src/packages/popup/index.vue

@@ -103,9 +103,7 @@ const popupProps = {
     default: false
   }
 };
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     ...overlayProps,
     ...popupProps

+ 0 - 2
src/packages/rate/index.vue

@@ -23,9 +23,7 @@
 import { watch, reactive, computed } from 'vue';
 import { createComponent } from '@/utils/create';
 const { componentName, create } = createComponent('rate');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     total: {
       type: [String, Number],

+ 0 - 2
src/packages/shortpassword/index.vue

@@ -46,9 +46,7 @@
 import { ref, watch, computed } from 'vue';
 import { createComponent } from '@/utils/create';
 const { create } = createComponent('shortpassword');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     title: {
       type: String,

+ 0 - 2
src/packages/tabbaritem/index.vue

@@ -32,9 +32,7 @@ import {
   watch
 } from 'vue';
 const { create } = createComponent('tabbar-item');
-import Icon from '@/packages/icon/index.vue';
 export default create({
-  children: [Icon],
   props: {
     tabTitle: {
       // 标签页的标题

+ 0 - 2
src/packages/toast/index.vue

@@ -25,12 +25,10 @@
   </Transition>
 </template>
 <script>
-import Icon from '@/packages/icon/index.vue';
 import { toRefs, toRef, reactive, computed, watch, onMounted } from 'vue';
 import { createComponent } from '@/utils/create';
 const { create } = createComponent('toast');
 export default create({
-  children: [Icon],
   props: {
     id: String,
     msg: String,

+ 0 - 2
src/packages/uploader/index.vue

@@ -33,7 +33,6 @@
 <script lang="ts">
 import { computed, reactive } from 'vue';
 import { createComponent } from '@/utils/create';
-import Icon from '@/packages/icon/index.vue';
 import { Uploader, UploadOptions } from './uploader';
 const { componentName, create } = createComponent('uploader');
 export type FileItemStatus =
@@ -51,7 +50,6 @@ export class FileItem {
   formData: FormData = new FormData();
 }
 export default create({
-  children: [Icon],
   props: {
     name: { type: String, default: 'file' },
     url: { type: String, default: '' },

+ 25 - 21
vite.config.build.single.ts

@@ -1,11 +1,7 @@
-// 处理按需加载
-
 import { defineConfig } from 'vite';
 import vue from '@vitejs/plugin-vue';
-import Markdown from 'vite-plugin-md';
 import path from 'path';
 import config from './package.json';
-// https://vitejs.dev/config/
 
 const banner = `/*!
 * ${config.name} v${config.version} ${new Date()}
@@ -26,28 +22,36 @@ export default defineConfig({
       }
     }
   },
-  plugins: [
-    vue({
-      include: [/\.vue$/, /\.md$/]
-    }),
-    Markdown()
-  ],
+  plugins: [vue()],
   build: {
+    minify: false,
+    lib: {
+      entry: path.resolve(__dirname, './src/packages/button/index.vue'),
+      name: 'button'
+      // formats: ['umd']
+    },
     rollupOptions: {
       // 请确保外部化那些你的库中不需要的依赖
       external: ['vue'],
-      output: {
-        banner,
-        // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
-        globals: {
-          vue: 'Vue'
+      input: path.resolve(__dirname, './src/packages/button/index.vue'),
+      output: [
+        {
+          dir: null,
+          file: path.resolve(__dirname, './dist/lib/button/index.js'),
+          banner,
+          format: 'umd',
+          // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
+          globals: {
+            vue: 'Vue'
+          }
+        },
+        {
+          dir: null,
+          file: path.resolve(__dirname, './dist/es/button/index.js'),
+          banner,
+          format: 'es'
         }
-      }
-    },
-    lib: {
-      entry: 'src/nutui.ts',
-      name: 'nutui',
-      formats: ['es', 'umd']
+      ]
     },
     emptyOutDir: false
   }

+ 1 - 8
vite.config.build.ts

@@ -1,9 +1,7 @@
 import { defineConfig } from 'vite';
 import vue from '@vitejs/plugin-vue';
-import Markdown from 'vite-plugin-md';
 import path from 'path';
 import config from './package.json';
-// https://vitejs.dev/config/
 
 const banner = `/*!
 * ${config.name} v${config.version} ${new Date()}
@@ -24,12 +22,7 @@ export default defineConfig({
       }
     }
   },
-  plugins: [
-    vue({
-      include: [/\.vue$/, /\.md$/]
-    }),
-    Markdown()
-  ],
+  plugins: [vue()],
   build: {
     rollupOptions: {
       // 请确保外部化那些你的库中不需要的依赖