Browse Source

fix: dts-taro

suzigang 3 years ago
parent
commit
2b5d694e81

+ 1 - 1
jd/generate-nutui-taro-vue.cjs

@@ -31,7 +31,7 @@ let installFunction = `function install(app: any) {
 let fileStrBuild = `${importStr}
 let fileStrBuild = `${importStr}
 ${installFunction}
 ${installFunction}
 const version = '${packageConfig.version}';
 const version = '${packageConfig.version}';
-export { install, version, Locale };
+export { install, version, Locale, ${packages.join(',')} };
 export default { install, version, Locale};`;
 export default { install, version, Locale};`;
 
 
 fs.outputFile(path.resolve(__dirname, '../src/packages/nutui.taro.vue.build.ts'), fileStrBuild, 'utf8', (error) => {
 fs.outputFile(path.resolve(__dirname, '../src/packages/nutui.taro.vue.build.ts'), fileStrBuild, 'utf8', (error) => {

+ 4 - 0
jd/generate-types-taro.cjs

@@ -6,6 +6,10 @@ const sourceDir = path.resolve(__dirname, './../tsc/type/src/packages') // 拷
 
 
 const toDir = path.resolve(__dirname, './../dist/types'); // ./../dist
 const toDir = path.resolve(__dirname, './../dist/types'); // ./../dist
 
 
+if(fs.existsSync(toDir)) {
+  fs.rmdirSync(toDir); //先删除文件夹
+}
+
 const basePath = path.join(toDir, '__VUE');
 const basePath = path.join(toDir, '__VUE');
 
 
 const fileList = [];
 const fileList = [];

+ 4 - 0
jd/generate-types.cjs

@@ -6,6 +6,10 @@ const sourceDir = path.resolve(__dirname, './../tsc/type/src/packages'); // 拷
 
 
 const toDir = path.resolve(__dirname, './../dist/types'); // ./../dist
 const toDir = path.resolve(__dirname, './../dist/types'); // ./../dist
 
 
+if(fs.existsSync(toDir)) {
+  fs.rmdirSync(toDir); //先删除文件夹
+}
+
 const basePath = path.join(toDir, '__VUE');
 const basePath = path.join(toDir, '__VUE');
 
 
 const fileList = [];
 const fileList = [];

+ 5 - 5
package.json

@@ -41,11 +41,11 @@
   "scripts": {
   "scripts": {
     "checked": "npm run generate:file && tsc",
     "checked": "npm run generate:file && tsc",
     "checked:taro:vue": "npm run generate:file:taro:vue",
     "checked:taro:vue": "npm run generate:file:taro:vue",
-    "dev": "npm run checked && vite --open --force",
-    "dev:taro:weapp": "npm run createTaroConfig && npm run checked:taro:vue && cd src/sites/mobile-taro/vue/ && npm run dev:weapp",
-    "dev:taro:alipay": "npm run createTaroConfig && npm run checked:taro:vue && cd src/sites/mobile-taro/vue/ && npm run dev:alipay",
-    "dev:taro:jd": "npm run createTaroConfig && npm run checked:taro:vue && cd src/sites/mobile-taro/vue/ && npm run dev:jd",
-    "dev:taro:h5": "npm run createTaroConfig && npm run checked:taro:vue && cd src/sites/mobile-taro/vue/ && npm run dev:h5",
+    "dev": "npm run checked && npm run dts && vite --open --force",
+    "dev:taro:weapp": "npm run createTaroConfig && npm run checked:taro:vue && npm run dts && cd src/sites/mobile-taro/vue/ && npm run dev:weapp",
+    "dev:taro:alipay": "npm run createTaroConfig && npm run checked:taro:vue && npm run dts && cd src/sites/mobile-taro/vue/ && npm run dev:alipay",
+    "dev:taro:jd": "npm run createTaroConfig && npm run checked:taro:vue && npm run dts && cd src/sites/mobile-taro/vue/ && npm run dev:jd",
+    "dev:taro:h5": "npm run createTaroConfig && npm run checked:taro:vue && npm run dts && cd src/sites/mobile-taro/vue/ && npm run dev:h5",
     "build:site": "npm run checked && vite build",
     "build:site": "npm run checked && vite build",
     "build:site-jdt": "npm run checked && vite build --config vite.config.jdt.ts ",
     "build:site-jdt": "npm run checked && vite build --config vite.config.jdt.ts ",
     "build:site:oss": "npm run checked && vite build --base=/nutui/4x/",
     "build:site:oss": "npm run checked && vite build --base=/nutui/4x/",

+ 1 - 0
src/packages/__VUE/button/index.taro.vue

@@ -14,6 +14,7 @@
 import { PropType, CSSProperties, toRefs, computed } from 'vue';
 import { PropType, CSSProperties, toRefs, computed } from 'vue';
 import { createComponent } from '@/packages/utils/create';
 import { createComponent } from '@/packages/utils/create';
 import { Loading } from '@nutui/icons-vue-taro';
 import { Loading } from '@nutui/icons-vue-taro';
+// import { ButtonShape, ButtonType, ButtonSize } from './type';
 const { componentName, create } = createComponent('button');
 const { componentName, create } = createComponent('button');
 export default create({
 export default create({
   components: { Loading },
   components: { Loading },

+ 4 - 3
src/packages/__VUE/button/index.vue

@@ -13,6 +13,7 @@
 <script lang="ts">
 <script lang="ts">
 import { PropType, CSSProperties, toRefs, computed } from 'vue';
 import { PropType, CSSProperties, toRefs, computed } from 'vue';
 import { createComponent } from '@/packages/utils/create';
 import { createComponent } from '@/packages/utils/create';
+import { ButtonShape, ButtonType, ButtonSize } from './type';
 import { Loading } from '@nutui/icons-vue';
 import { Loading } from '@nutui/icons-vue';
 const { componentName, create } = createComponent('button');
 const { componentName, create } = createComponent('button');
 export default create({
 export default create({
@@ -20,7 +21,7 @@ export default create({
   props: {
   props: {
     color: String,
     color: String,
     shape: {
     shape: {
-      type: String as PropType<import('./type').ButtonShape>,
+      type: String as PropType<ButtonShape>,
       default: 'round'
       default: 'round'
     },
     },
     plain: {
     plain: {
@@ -36,11 +37,11 @@ export default create({
       default: false
       default: false
     },
     },
     type: {
     type: {
-      type: String as PropType<import('./type').ButtonType>,
+      type: String as PropType<ButtonType>,
       default: 'default'
       default: 'default'
     },
     },
     size: {
     size: {
-      type: String as PropType<import('./type').ButtonSize>,
+      type: String as PropType<ButtonSize>,
       default: 'normal'
       default: 'normal'
     },
     },
     block: {
     block: {

+ 1 - 19
src/packages/__VUE/noticebar/index.taro.vue

@@ -12,7 +12,7 @@
       @click="handleClick"
       @click="handleClick"
       v-if="direction == 'across'"
       v-if="direction == 'across'"
     >
     >
-      <view class="nut-noticebar__page-lefticon" v-if="iconShow">
+      <view class="nut-noticebar__page-lefticon">
         <slot name="left-icon" v-if="$slots['left-icon']"> </slot>
         <slot name="left-icon" v-if="$slots['left-icon']"> </slot>
         <component :is="renderIcon(leftIcon)" v-else></component>
         <component :is="renderIcon(leftIcon)" v-else></component>
       </view>
       </view>
@@ -208,14 +208,6 @@ export default create({
       };
       };
     });
     });
 
 
-    const iconShow = computed(() => {
-      if (props.leftIcon == 'close') {
-        return false;
-      } else {
-        return true;
-      }
-    });
-
     const barStyle = computed(() => {
     const barStyle = computed(() => {
       let style: {
       let style: {
         [props: string]: any;
         [props: string]: any;
@@ -237,14 +229,6 @@ export default create({
         transform: `translateX(${state.firstRound ? 0 : state.wrapWidth + 'px'})`
         transform: `translateX(${state.firstRound ? 0 : state.wrapWidth + 'px'})`
       };
       };
     });
     });
-
-    const iconBg = computed(() => {
-      let iconBg = '';
-      if (props.leftIcon) {
-        iconBg = props.leftIcon;
-      }
-      return iconBg;
-    });
     const horseLampStyle = computed(() => {
     const horseLampStyle = computed(() => {
       let styles = {};
       let styles = {};
       if (props.complexAm) {
       if (props.complexAm) {
@@ -414,10 +398,8 @@ export default create({
       ...toRefs(state),
       ...toRefs(state),
       isEllipsis,
       isEllipsis,
       classes,
       classes,
-      iconShow,
       barStyle,
       barStyle,
       contentStyle,
       contentStyle,
-      iconBg,
       horseLampStyle,
       horseLampStyle,
       wrap,
       wrap,
       content,
       content,

+ 1 - 18
src/packages/__VUE/noticebar/index.vue

@@ -12,7 +12,7 @@
       @click="handleClick"
       @click="handleClick"
       v-if="direction == 'across'"
       v-if="direction == 'across'"
     >
     >
-      <view class="nut-noticebar__page-lefticon" v-if="iconShow">
+      <view class="nut-noticebar__page-lefticon">
         <slot name="left-icon" v-if="$slots['left-icon']"> </slot>
         <slot name="left-icon" v-if="$slots['left-icon']"> </slot>
         <component :is="renderIcon(leftIcon)" v-else></component>
         <component :is="renderIcon(leftIcon)" v-else></component>
       </view>
       </view>
@@ -216,14 +216,6 @@ export default create({
       };
       };
     });
     });
 
 
-    const iconShow = computed(() => {
-      if (props.leftIcon == 'close') {
-        return false;
-      } else {
-        return true;
-      }
-    });
-
     const barStyle = computed(() => {
     const barStyle = computed(() => {
       let style: {
       let style: {
         [props: string]: any;
         [props: string]: any;
@@ -245,13 +237,6 @@ export default create({
         transform: `translateX(${state.firstRound ? 0 : state.wrapWidth + 'px'})`
         transform: `translateX(${state.firstRound ? 0 : state.wrapWidth + 'px'})`
       };
       };
     });
     });
-    const iconBg = computed(() => {
-      let iconBg = '';
-      if (props.leftIcon) {
-        iconBg = props.leftIcon;
-      }
-      return iconBg;
-    });
     const horseLampStyle = computed(() => {
     const horseLampStyle = computed(() => {
       let styles = {};
       let styles = {};
       if (props.complexAm) {
       if (props.complexAm) {
@@ -410,10 +395,8 @@ export default create({
       ...toRefs(state),
       ...toRefs(state),
       isEllipsis,
       isEllipsis,
       classes,
       classes,
-      iconShow,
       barStyle,
       barStyle,
       contentStyle,
       contentStyle,
-      iconBg,
       horseLampStyle,
       horseLampStyle,
       wrap,
       wrap,
       content,
       content,

+ 1 - 33
vite.config.build.taro.vue.disperse.ts

@@ -1,8 +1,7 @@
 import { defineConfig } from 'vite';
 import { defineConfig } from 'vite';
-import dts from 'vite-plugin-dts';
 import vue from '@vitejs/plugin-vue';
 import vue from '@vitejs/plugin-vue';
 import path from 'path';
 import path from 'path';
-const fs = require('fs-extra');
+import fs from 'fs-extra';
 import config from './package.json';
 import config from './package.json';
 import configPkg from './src/config.json';
 import configPkg from './src/config.json';
 
 
@@ -45,37 +44,6 @@ export default defineConfig({
           whitespace: 'preserve'
           whitespace: 'preserve'
         }
         }
       }
       }
-    }),
-    dts({
-      insertTypesEntry: true,
-      copyDtsFiles: false,
-      cleanVueFileName: false,
-      outputDir: path.resolve(__dirname, './dist/types'),
-      include: path.resolve(__dirname, './src/packages/__VUE'),
-      beforeWriteFile: (filePath: string, content: string) => {
-        const fileContent = `import { App, PropType, CSSProperties } from 'vue';
-declare type Install<T> = T & {
-  install(app: App): void;
-};
-`;
-        const start = 'declare const _sfc_main:';
-        const end = ';\nexport default _sfc_main;\n';
-        let name = Object.keys(input).find((item: string) => item.toLowerCase() === filePath.split('/').slice(-2)[0]);
-        name = name ? name : ' ';
-        const remain = `
-declare module 'vue' {
-  interface GlobalComponents {
-      Nut${name}: typeof _sfc_main;
-  }
-}     
-      `;
-        const inputs = content.match(RegExp(`${start}([\\s\\S]*?)${end}`));
-        const changeContent = inputs && inputs.length ? `${start} Install<${inputs[1]}>${end}${remain}` : content;
-        return {
-          filePath,
-          content: fileContent + changeContent
-        };
-      }
     })
     })
   ],
   ],
   build: {
   build: {