sun-form-v3 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/.history/package_20240516171646.json +21 -0
- package/.history/package_20240516220959.json +21 -0
- package/.history/package_20240516221125.json +22 -0
- package/.history/package_20240516221133.json +22 -0
- package/.history/package_20240516221150.json +22 -0
- package/.history/packages/index_20240516170215.ts +0 -0
- package/.history/packages/index_20240516170240.ts +16 -0
- package/.history/packages/index_20240516170259.ts +16 -0
- package/.history/packages/index_20240516215605.ts +16 -0
- package/.history/packages/sy-button/index_20240516170041.vue +0 -0
- package/.history/packages/sy-button/index_20240516170054.vue +11 -0
- package/.history/packages/sy-button/index_20240516170059.ts +0 -0
- package/.history/packages/sy-button/index_20240516170139.ts +6 -0
- package/.history/packages/sy-button/index_20240516170143.ts +6 -0
- package/.history/packages/sy-button/index_20240516170826.vue +11 -0
- package/.history/packages/sy-button/index_20240516170827.vue +11 -0
- package/.history/packages/sy-button/index_20240516171258.ts +6 -0
- package/.history/packages/sy-button/index_20240516205457.ts +6 -0
- package/.history/packages/sy-button/index_20240516205458.ts +6 -0
- package/.history/packages/sy-button/index_20240516214802.vue +11 -0
- package/.history/src/App_20240516163625.vue +30 -0
- package/.history/src/App_20240516171000.vue +30 -0
- package/.history/src/App_20240516171003.vue +29 -0
- package/.history/src/App_20240516171012.vue +31 -0
- package/.history/src/App_20240516171045.vue +32 -0
- package/.history/src/App_20240516171056.vue +23 -0
- package/.history/src/vite-env.d_20240516163625.ts +1 -0
- package/.history/src/vite-env.d_20240516164812.ts +6 -0
- package/.history/src/vite-env.d_20240516170519.ts +6 -0
- package/.history/tsconfig_20240516163625.json +25 -0
- package/.history/tsconfig_20240516171547.json +26 -0
- package/.history/tsconfig_20240516171627.json +27 -0
- package/.history/tsconfig_20240516171733.json +26 -0
- package/.history/tsconfig_20240516214249.json +29 -0
- package/.history/tsconfig_20240516214506.json +29 -0
- package/.history/tsconfig_20240516214522.json +28 -0
- package/.history/types/vue.d_20240516214359.ts +0 -0
- package/.history/types/vue.d_20240516214406.ts +4 -0
- package/.history/types/vue.d_20240516214702.ts +6 -0
- package/.history/types/vue.d_20240516214737.ts +6 -0
- package/.history/vite.config_20240516163625.ts +7 -0
- package/.history/vite.config_20240516171436.ts +63 -0
- package/.history/vite.config_20240516171745.ts +63 -0
- package/.history/vite.config_20240516171816.ts +63 -0
- package/.history/vite.config_20240516171904.ts +63 -0
- package/.history/vite.config_20240516172136.ts +65 -0
- package/.history/vite.config_20240516172137.ts +65 -0
- package/.history/vite.config_20240516172206.ts +65 -0
- package/.history/vite.config_20240516172233.ts +65 -0
- package/.history/vite.config_20240516172329.ts +65 -0
- package/.history/vite.config_20240516205537.ts +65 -0
- package/.history/vite.config_20240516221534.ts +65 -0
- package/.vscode/extensions.json +3 -0
- package/README.md +9 -0
- package/index.html +13 -0
- package/package.json +23 -0
- package/packages/index.ts +16 -0
- package/packages/sy-button/index.ts +6 -0
- package/packages/sy-button/index.vue +11 -0
- package/public/vite.svg +1 -0
- package/src/App.vue +23 -0
- package/src/assets/vue.svg +1 -0
- package/src/components/HelloWorld.vue +38 -0
- package/src/main.ts +5 -0
- package/src/style.css +79 -0
- package/src/vite-env.d.ts +6 -0
- package/tsconfig.json +28 -0
- package/tsconfig.node.json +11 -0
- package/types/vue.d.ts +6 -0
- package/vite.config.ts +65 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
import { defineConfig } from 'vite'
|
2
|
+
import vue from '@vitejs/plugin-vue'
|
3
|
+
import { resolve } from 'path';
|
4
|
+
|
5
|
+
const pathResolve = (dir: string) => {
|
6
|
+
return resolve(__dirname, '.', dir);
|
7
|
+
};
|
8
|
+
const alias: Record<string, string> = {
|
9
|
+
'@': pathResolve('./src'),
|
10
|
+
};
|
11
|
+
|
12
|
+
// https://vitejs.dev/config/
|
13
|
+
export default defineConfig({
|
14
|
+
plugins: [vue()],
|
15
|
+
base: './',
|
16
|
+
build: {
|
17
|
+
outDir: 'dist', //输出文件名称
|
18
|
+
lib: {
|
19
|
+
entry: resolve(__dirname, './packages/index.ts'), //指定组件编译入口文件
|
20
|
+
name: 'sun-form-v3',
|
21
|
+
fileName: 'sun-form-v3'
|
22
|
+
},//库编译模式配置
|
23
|
+
rollupOptions: {
|
24
|
+
external: ['vue',
|
25
|
+
// 'swiper', '@vuepic/vue-datepicker', 'qrcode'
|
26
|
+
],
|
27
|
+
output: {
|
28
|
+
// format: 'es', // 默认es,可选 'amd' 'cjs' 'es' 'iife' 'umd' 'system'
|
29
|
+
exports: 'named',
|
30
|
+
globals: { //在UMD构建模式下为这些外部化的依赖提供一个全局变量
|
31
|
+
vue: 'Vue',
|
32
|
+
// 'vue-router': 'VueRouter', // 引入vue-router全局变量,否则router.push将无法使用
|
33
|
+
// swiper: 'Swiper',
|
34
|
+
// '@vuepic/vue-datepicker': 'VueDatePicker',
|
35
|
+
// qrcode: 'qrcode'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
},
|
39
|
+
/** 设置为 false 可以禁用最小化混淆,或是用来指定使用哪种混淆器。
|
40
|
+
默认为 Esbuild,它比 terser 快 20-40 倍,压缩率只差 1%-2%。
|
41
|
+
注意,在 lib 模式下使用 'es' 时,build.minify 选项不会缩减空格,因为会移除掉 pure 标注,导致破坏 tree-shaking。
|
42
|
+
当设置为 'terser' 时必须先安装 Terser。(yarn add terser -D)
|
43
|
+
*/
|
44
|
+
// minify: 'terser', // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
|
45
|
+
terserOptions: { // 在打包代码时移除 console、debugger 和 注释
|
46
|
+
compress: {
|
47
|
+
/* (default: false) -- Pass true to discard calls to console.* functions.
|
48
|
+
If you wish to drop a specific function call such as console.info and/or
|
49
|
+
retain side effects from function arguments after dropping the function
|
50
|
+
call then use pure_funcs instead-++++++-
|
51
|
+
*/
|
52
|
+
drop_console: true, // 生产环境时移除console
|
53
|
+
drop_debugger: true // 生产环境时移除debugger
|
54
|
+
},
|
55
|
+
format: {
|
56
|
+
comments: false // 删除注释comments
|
57
|
+
}
|
58
|
+
}
|
59
|
+
},
|
60
|
+
resolve: {
|
61
|
+
alias,
|
62
|
+
}
|
63
|
+
})
|
64
|
+
|
65
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { defineConfig } from 'vite'
|
2
|
+
import vue from '@vitejs/plugin-vue'
|
3
|
+
import { resolve } from 'path';
|
4
|
+
|
5
|
+
const pathResolve = (dir: string) => {
|
6
|
+
return resolve(__dirname, '.', dir);
|
7
|
+
};
|
8
|
+
const alias: Record<string, string> = {
|
9
|
+
'@': pathResolve('./src'),
|
10
|
+
};
|
11
|
+
|
12
|
+
// https://vitejs.dev/config/
|
13
|
+
export default defineConfig({
|
14
|
+
plugins: [vue()],
|
15
|
+
base: './',
|
16
|
+
build: {
|
17
|
+
outDir: 'dist', //输出文件名称
|
18
|
+
lib: {
|
19
|
+
entry: resolve(__dirname, './packages/index.ts'), //指定组件编译入口文件
|
20
|
+
name: 'sun-form-v3',
|
21
|
+
fileName: 'sun-form-v3'
|
22
|
+
},//库编译模式配置
|
23
|
+
rollupOptions: {
|
24
|
+
external: ['vue',
|
25
|
+
// 'swiper', '@vuepic/vue-datepicker', 'qrcode'
|
26
|
+
],
|
27
|
+
output: {
|
28
|
+
// format: 'es', // 默认es,可选 'amd' 'cjs' 'es' 'iife' 'umd' 'system'
|
29
|
+
exports: 'named',
|
30
|
+
globals: { //在UMD构建模式下为这些外部化的依赖提供一个全局变量
|
31
|
+
vue: 'Vue',
|
32
|
+
// 'vue-router': 'VueRouter', // 引入vue-router全局变量,否则router.push将无法使用
|
33
|
+
// swiper: 'Swiper',
|
34
|
+
// '@vuepic/vue-datepicker': 'VueDatePicker',
|
35
|
+
// qrcode: 'qrcode'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
},
|
39
|
+
/** 设置为 false 可以禁用最小化混淆,或是用来指定使用哪种混淆器。
|
40
|
+
默认为 Esbuild,它比 terser 快 20-40 倍,压缩率只差 1%-2%。
|
41
|
+
注意,在 lib 模式下使用 'es' 时,build.minify 选项不会缩减空格,因为会移除掉 pure 标注,导致破坏 tree-shaking。
|
42
|
+
当设置为 'terser' 时必须先安装 Terser。(yarn add terser -D)
|
43
|
+
*/
|
44
|
+
minify: 'terser', // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
|
45
|
+
terserOptions: { // 在打包代码时移除 console、debugger 和 注释
|
46
|
+
compress: {
|
47
|
+
/* (default: false) -- Pass true to discard calls to console.* functions.
|
48
|
+
If you wish to drop a specific function call such as console.info and/or
|
49
|
+
retain side effects from function arguments after dropping the function
|
50
|
+
call then use pure_funcs instead-++++++-
|
51
|
+
*/
|
52
|
+
drop_console: true, // 生产环境时移除console
|
53
|
+
drop_debugger: true // 生产环境时移除debugger
|
54
|
+
},
|
55
|
+
format: {
|
56
|
+
comments: false // 删除注释comments
|
57
|
+
}
|
58
|
+
}
|
59
|
+
},
|
60
|
+
resolve: {
|
61
|
+
alias,
|
62
|
+
}
|
63
|
+
})
|
64
|
+
|
65
|
+
|
package/README.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
# Vue 3 + TypeScript + Vite
|
2
|
+
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
+
|
5
|
+
## Recommended Setup
|
6
|
+
|
7
|
+
- [VS Code](https://code.visualstudio.com/) + [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (previously Volar) and disable Vetur
|
8
|
+
|
9
|
+
- Use [vue-tsc](https://github.com/vuejs/language-tools/tree/master/packages/tsc) for performing the same type checking from the command line, or for generating d.ts files for SFCs.
|
package/index.html
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8" />
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
+
<title>Vite + Vue + TS</title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div id="app"></div>
|
11
|
+
<script type="module" src="/src/main.ts"></script>
|
12
|
+
</body>
|
13
|
+
</html>
|
package/package.json
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"name": "sun-form-v3",
|
3
|
+
"private": false,
|
4
|
+
"version": "0.0.1",
|
5
|
+
"main": "./dist/sun-form-v3.umd.cjs",
|
6
|
+
"type": "module",
|
7
|
+
"scripts": {
|
8
|
+
"dev": "vite",
|
9
|
+
"build": "vue-tsc && vite build",
|
10
|
+
"preview": "vite preview"
|
11
|
+
},
|
12
|
+
"dependencies": {
|
13
|
+
"vue": "^3.4.21"
|
14
|
+
},
|
15
|
+
"devDependencies": {
|
16
|
+
"@types/node": "^20.12.12",
|
17
|
+
"@vitejs/plugin-vue": "^5.0.4",
|
18
|
+
"terser": "^5.31.0",
|
19
|
+
"typescript": "^5.2.2",
|
20
|
+
"vite": "^5.2.0",
|
21
|
+
"vue-tsc": "^2.0.6"
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import type { App } from 'vue'
|
2
|
+
import syButton from './sy-button'
|
3
|
+
|
4
|
+
const components = [
|
5
|
+
syButton
|
6
|
+
];
|
7
|
+
|
8
|
+
const install = (app: App): void => {
|
9
|
+
components.forEach(component => app.component(component.__name as string, component))
|
10
|
+
}
|
11
|
+
export {
|
12
|
+
syButton
|
13
|
+
}
|
14
|
+
|
15
|
+
const viteVueNode = { install };
|
16
|
+
export default viteVueNode
|
package/public/vite.svg
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/src/App.vue
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
</script>
|
3
|
+
|
4
|
+
<template>
|
5
|
+
<sy-button></sy-button>
|
6
|
+
</template>
|
7
|
+
|
8
|
+
<style scoped>
|
9
|
+
.logo {
|
10
|
+
height: 6em;
|
11
|
+
padding: 1.5em;
|
12
|
+
will-change: filter;
|
13
|
+
transition: filter 300ms;
|
14
|
+
}
|
15
|
+
|
16
|
+
.logo:hover {
|
17
|
+
filter: drop-shadow(0 0 2em #646cffaa);
|
18
|
+
}
|
19
|
+
|
20
|
+
.logo.vue:hover {
|
21
|
+
filter: drop-shadow(0 0 2em #42b883aa);
|
22
|
+
}
|
23
|
+
</style>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
import { ref } from 'vue'
|
3
|
+
|
4
|
+
defineProps<{ msg: string }>()
|
5
|
+
|
6
|
+
const count = ref(0)
|
7
|
+
</script>
|
8
|
+
|
9
|
+
<template>
|
10
|
+
<h1>{{ msg }}</h1>
|
11
|
+
|
12
|
+
<div class="card">
|
13
|
+
<button type="button" @click="count++">count is {{ count }}</button>
|
14
|
+
<p>
|
15
|
+
Edit
|
16
|
+
<code>components/HelloWorld.vue</code> to test HMR
|
17
|
+
</p>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
Check out
|
22
|
+
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
23
|
+
>create-vue</a
|
24
|
+
>, the official Vue + Vite starter
|
25
|
+
</p>
|
26
|
+
<p>
|
27
|
+
Install
|
28
|
+
<a href="https://github.com/vuejs/language-tools" target="_blank">Volar</a>
|
29
|
+
in your IDE for a better DX
|
30
|
+
</p>
|
31
|
+
<p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
|
32
|
+
</template>
|
33
|
+
|
34
|
+
<style scoped>
|
35
|
+
.read-the-docs {
|
36
|
+
color: #888;
|
37
|
+
}
|
38
|
+
</style>
|
package/src/main.ts
ADDED
package/src/style.css
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
:root {
|
2
|
+
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
3
|
+
line-height: 1.5;
|
4
|
+
font-weight: 400;
|
5
|
+
|
6
|
+
color-scheme: light dark;
|
7
|
+
color: rgba(255, 255, 255, 0.87);
|
8
|
+
background-color: #242424;
|
9
|
+
|
10
|
+
font-synthesis: none;
|
11
|
+
text-rendering: optimizeLegibility;
|
12
|
+
-webkit-font-smoothing: antialiased;
|
13
|
+
-moz-osx-font-smoothing: grayscale;
|
14
|
+
}
|
15
|
+
|
16
|
+
a {
|
17
|
+
font-weight: 500;
|
18
|
+
color: #646cff;
|
19
|
+
text-decoration: inherit;
|
20
|
+
}
|
21
|
+
a:hover {
|
22
|
+
color: #535bf2;
|
23
|
+
}
|
24
|
+
|
25
|
+
body {
|
26
|
+
margin: 0;
|
27
|
+
display: flex;
|
28
|
+
place-items: center;
|
29
|
+
min-width: 320px;
|
30
|
+
min-height: 100vh;
|
31
|
+
}
|
32
|
+
|
33
|
+
h1 {
|
34
|
+
font-size: 3.2em;
|
35
|
+
line-height: 1.1;
|
36
|
+
}
|
37
|
+
|
38
|
+
button {
|
39
|
+
border-radius: 8px;
|
40
|
+
border: 1px solid transparent;
|
41
|
+
padding: 0.6em 1.2em;
|
42
|
+
font-size: 1em;
|
43
|
+
font-weight: 500;
|
44
|
+
font-family: inherit;
|
45
|
+
background-color: #1a1a1a;
|
46
|
+
cursor: pointer;
|
47
|
+
transition: border-color 0.25s;
|
48
|
+
}
|
49
|
+
button:hover {
|
50
|
+
border-color: #646cff;
|
51
|
+
}
|
52
|
+
button:focus,
|
53
|
+
button:focus-visible {
|
54
|
+
outline: 4px auto -webkit-focus-ring-color;
|
55
|
+
}
|
56
|
+
|
57
|
+
.card {
|
58
|
+
padding: 2em;
|
59
|
+
}
|
60
|
+
|
61
|
+
#app {
|
62
|
+
max-width: 1280px;
|
63
|
+
margin: 0 auto;
|
64
|
+
padding: 2rem;
|
65
|
+
text-align: center;
|
66
|
+
}
|
67
|
+
|
68
|
+
@media (prefers-color-scheme: light) {
|
69
|
+
:root {
|
70
|
+
color: #213547;
|
71
|
+
background-color: #ffffff;
|
72
|
+
}
|
73
|
+
a:hover {
|
74
|
+
color: #747bff;
|
75
|
+
}
|
76
|
+
button {
|
77
|
+
background-color: #f9f9f9;
|
78
|
+
}
|
79
|
+
}
|
package/tsconfig.json
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"target": "ES2020",
|
4
|
+
"useDefineForClassFields": true,
|
5
|
+
"module": "ESNext",
|
6
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
7
|
+
"skipLibCheck": true,
|
8
|
+
|
9
|
+
/* Bundler mode */
|
10
|
+
"moduleResolution": "bundler",
|
11
|
+
"allowImportingTsExtensions": true,
|
12
|
+
"resolveJsonModule": true,
|
13
|
+
"isolatedModules": true,
|
14
|
+
"noEmit": true,
|
15
|
+
"jsx": "preserve",
|
16
|
+
|
17
|
+
/* Linting */
|
18
|
+
"strict": true,
|
19
|
+
"noUnusedLocals": true,
|
20
|
+
"noUnusedParameters": true,
|
21
|
+
"noFallthroughCasesInSwitch": true
|
22
|
+
|
23
|
+
},
|
24
|
+
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue","packages/**/*.vue"],
|
25
|
+
"references": [{
|
26
|
+
"path": "./tsconfig.node.json"
|
27
|
+
}]
|
28
|
+
}
|
package/types/vue.d.ts
ADDED
package/vite.config.ts
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
import { defineConfig } from 'vite'
|
2
|
+
import vue from '@vitejs/plugin-vue'
|
3
|
+
import { resolve } from 'path';
|
4
|
+
|
5
|
+
const pathResolve = (dir: string) => {
|
6
|
+
return resolve(__dirname, '.', dir);
|
7
|
+
};
|
8
|
+
const alias: Record<string, string> = {
|
9
|
+
'@': pathResolve('./src'),
|
10
|
+
};
|
11
|
+
|
12
|
+
// https://vitejs.dev/config/
|
13
|
+
export default defineConfig({
|
14
|
+
plugins: [vue()],
|
15
|
+
base: './',
|
16
|
+
build: {
|
17
|
+
outDir: 'dist', //输出文件名称
|
18
|
+
lib: {
|
19
|
+
entry: resolve(__dirname, './packages/index.ts'), //指定组件编译入口文件
|
20
|
+
name: 'sun-form-v3',
|
21
|
+
fileName: 'sun-form-v3'
|
22
|
+
},//库编译模式配置
|
23
|
+
rollupOptions: {
|
24
|
+
external: ['vue',
|
25
|
+
// 'swiper', '@vuepic/vue-datepicker', 'qrcode'
|
26
|
+
],
|
27
|
+
output: {
|
28
|
+
// format: 'es', // 默认es,可选 'amd' 'cjs' 'es' 'iife' 'umd' 'system'
|
29
|
+
exports: 'named',
|
30
|
+
globals: { //在UMD构建模式下为这些外部化的依赖提供一个全局变量
|
31
|
+
vue: 'Vue',
|
32
|
+
// 'vue-router': 'VueRouter', // 引入vue-router全局变量,否则router.push将无法使用
|
33
|
+
// swiper: 'Swiper',
|
34
|
+
// '@vuepic/vue-datepicker': 'VueDatePicker',
|
35
|
+
// qrcode: 'qrcode'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
},
|
39
|
+
/** 设置为 false 可以禁用最小化混淆,或是用来指定使用哪种混淆器。
|
40
|
+
默认为 Esbuild,它比 terser 快 20-40 倍,压缩率只差 1%-2%。
|
41
|
+
注意,在 lib 模式下使用 'es' 时,build.minify 选项不会缩减空格,因为会移除掉 pure 标注,导致破坏 tree-shaking。
|
42
|
+
当设置为 'terser' 时必须先安装 Terser。(yarn add terser -D)
|
43
|
+
*/
|
44
|
+
minify: 'terser', // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
|
45
|
+
terserOptions: { // 在打包代码时移除 console、debugger 和 注释
|
46
|
+
compress: {
|
47
|
+
/* (default: false) -- Pass true to discard calls to console.* functions.
|
48
|
+
If you wish to drop a specific function call such as console.info and/or
|
49
|
+
retain side effects from function arguments after dropping the function
|
50
|
+
call then use pure_funcs instead-++++++-
|
51
|
+
*/
|
52
|
+
drop_console: true, // 生产环境时移除console
|
53
|
+
drop_debugger: true // 生产环境时移除debugger
|
54
|
+
},
|
55
|
+
format: {
|
56
|
+
comments: false // 删除注释comments
|
57
|
+
}
|
58
|
+
}
|
59
|
+
},
|
60
|
+
resolve: {
|
61
|
+
alias,
|
62
|
+
}
|
63
|
+
})
|
64
|
+
|
65
|
+
|