浏览代码

chore: build component npm size optimization

richard1015 4 年之前
父节点
当前提交
4cc017dbc3
共有 3 个文件被更改,包括 51 次插入26 次删除
  1. 2 3
      package.json
  2. 26 0
      vite.config.build.css.ts
  3. 23 23
      vite.config.build.disperse.ts

+ 2 - 3
package.json

@@ -41,9 +41,8 @@
     "build:site": "npm run checked && vite build",
     "build:gh-pages": "npm run checked && vite build --base=/nutui/",
     "build:site:oss": "npm run checked && vite build --base=/nutui/3x/",
-    "build": "npm run checked && vite build --config vite.config.build.ts && npm run generate:types && npm run generate:themes",
-    "build:taro:vue": "npm run checked:taro:vue && vite build --config vite.config.build.taro.vue.ts && npm run generate:types && npm run generate:themes",
-    "build:disperse": "vite build --config vite.config.build.disperse.ts",
+    "build": "npm run checked && vite build --config vite.config.build.ts && npm run generate:types && npm run generate:themes && vite build --config vite.config.build.css.ts",
+    "build:taro:vue": "npm run checked:taro:vue && vite build --config vite.config.build.taro.vue.ts && npm run generate:types && npm run generate:themes && vite build --config vite.config.build.css.ts",
     "serve": "vite preview",
     "upload": "yarn build:site:oss && node ./jd/upload.js",
     "add": "node jd/createComponentMode.js",

+ 26 - 0
vite.config.build.css.ts

@@ -0,0 +1,26 @@
+import { defineConfig } from 'vite';
+import config from './package.json';
+
+const banner = `/*!
+* ${config.name} v${config.version} ${new Date()}
+* (c) 2021 @jdf2e.
+* Released under the MIT License.
+*/`;
+
+export default defineConfig({
+  build: {
+    minify: false,
+    lib: {
+      entry: './dist/styles/themes/default.scss',
+      formats: ['es'],
+      name: 'style',
+      fileName: 'style'
+    },
+    // rollupOptions: {
+    //   output: {
+    //     banner
+    //   }
+    // },
+    emptyOutDir: false
+  }
+});

+ 23 - 23
vite.config.build.disperse.ts

@@ -26,32 +26,32 @@ export default defineConfig({
   build: {
     minify: false,
     lib: {
-      entry: './src/packages/__VUE/price/index.vue',
-      name: 'index'
-      // formats: ['umd']
+      entry: '',
+      name: 'index',
+      fileName: (format) => 'index',
+      formats: ['es']
     },
     rollupOptions: {
       // 请确保外部化那些你的库中不需要的依赖
-      external: ['vue'],
-      input: ['./src/packages/__VUE/price/index.vue'],
-      output: [
-        {
-          dir: null,
-          file: './dist/lib/price/index.js',
-          banner,
-          format: 'umd',
-          // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
-          globals: {
-            vue: 'Vue'
-          }
-        },
-        {
-          dir: null,
-          file: path.resolve(__dirname, './dist/es/price/index.js'),
-          banner,
-          format: 'es'
-        }
-      ]
+      external: ['vue', 'vue-router', 'pinyin'],
+
+      input: [
+        './src/packages/__VUE/price/index.vue',
+        './src/packages/__VUE/cell/index.vue'
+      ],
+      output: {
+        dir: path.resolve(__dirname, './dist/packages/')
+        // entryFileNames: '[name].js',
+        // file: path.resolve(__dirname, './dist/packages/price/index.js'),
+      }
+      //  [
+      //   {
+      //     // dir: path.resolve(__dirname, './dist/packages/'),
+      //     // file: path.resolve(__dirname, './dist/packages/price/index.js'),
+      //     // banner,
+      //     // format: 'es'
+      //   }
+      // ]
     },
     emptyOutDir: true
   }