├── .gitignore
├── tsconfig.json
├── src
├── index.ts
└── lib.ts
├── package.json
├── README.md
└── pnpm-lock.yaml
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2015",
4 | "moduleResolution": "node",
5 | "strict": false,
6 | "declaration": true,
7 | "noUnusedLocals": true,
8 | "esModuleInterop": true,
9 | "outDir": "dist",
10 | "module": "commonjs",
11 | "lib": ["ESNext","DOM"],
12 | "sourceMap": true,
13 | },
14 | "include": ["./src"]
15 | }
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import type { Plugin } from 'vite'
2 | import { supportScriptName } from './lib'
3 |
4 | export default (): Plugin => {
5 | return {
6 | name: 'vite:setup-name-support',
7 | enforce: 'pre',
8 | async transform(code, id) {
9 | if (!/\.vue$/.test(id)) {
10 | return null
11 | }
12 |
13 | return supportScriptName.call(this, code, id)
14 | },
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vite-plugin-vue-setup-extend-plus",
3 | "version": "0.1.0",
4 | "description": "Extending the vue script setup syntactic sugar, by vite-plugin-vue-setup-extend",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "dev": "tsc -p . -w --incremental --skipLibCheck",
8 | "build": "rm -rf dist && tsc -p . --skipLibCheck"
9 | },
10 | "files": [
11 | "dist"
12 | ],
13 | "repository": {
14 | "type": "git",
15 | "url": "https://github.com/chenxch/vite-plugin-vue-setup-extend-plus.git"
16 | },
17 | "author": "chenxch",
18 | "license": "MIT",
19 | "bugs": {
20 | "url": "https://github.com/chenxch/vite-plugin-vue-setup-extend-plus/issues"
21 | },
22 | "homepage": "https://github.com/chenxch/vite-plugin-vue-setup-extend-plus",
23 | "devDependencies": {
24 | "@types/node": "^16.0.0",
25 | "@vue/compiler-sfc": "^3.2.31",
26 | "magic-string": "^0.26.1",
27 | "vite": "^2.4.0"
28 | },
29 | "keywords": [
30 | "vite",
31 | "vite plugin",
32 | "vite-plugin-vue-setup-extend",
33 | "vue",
34 | "setup",
35 | "name",
36 | "inheritAttrs"
37 | ]
38 | }
39 |
--------------------------------------------------------------------------------
/src/lib.ts:
--------------------------------------------------------------------------------
1 | import { parse, compileScript } from '@vue/compiler-sfc'
2 | import MagicString from 'magic-string'
3 |
4 | export function supportScriptName(code: string, id: string) {
5 | let s: MagicString | undefined
6 | const FILENAME_RE = /.*\/(\S*)/
7 | const str = () => s || (s = new MagicString(code))
8 | const { descriptor } = parse(code)
9 | if (!descriptor.script && descriptor.scriptSetup) {
10 | const result = compileScript(descriptor, { id })
11 | const name = result.attrs.name
12 | const lang = result.attrs.lang
13 | const inheritAttrs = result.attrs.inheritAttrs
14 | if(name||inheritAttrs) {
15 | str().appendLeft(
16 | 0,
17 | `\n`,
24 | )
25 | }
26 |
27 | const map = str().generateMap({ hires: true })
28 | const filename = FILENAME_RE.exec(id)![1]
29 |
30 | map.file = filename
31 | map.sources = [filename]
32 |
33 | return {
34 | map,
35 | code: str().toString(),
36 | }
37 | } else {
38 | return null
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Expansion based on [vite-plugin-vue-setup-extend](https://github.com/vbenjs/vite-plugin-vue-setup-extend)
2 |
3 | # vite-plugin-vue-setup-extend-plus
4 |
5 | Make the vue script setup syntax support the name attribute
6 |
7 | ## Iterative updates are made in [unplugin-vue-setup-extend-plus](https://www.npmjs.com/package/unplugin-vue-setup-extend-plus) during the later period.
8 |
9 | ## CHANGELOG
10 |
11 | ### [0.1.0]
12 |
13 | - Automatically convert based on name and inheritAttrs
14 | ## Feature
15 |
16 | - support name
17 | - support inheritAttrs
18 | - precise breakpoints
19 | ## Install (yarn or npm)
20 |
21 | **node version:** >=12.0.0
22 |
23 | **vite version:** >=2.0.0
24 |
25 | ```bash
26 | yarn add vite-plugin-vue-setup-extend-plus -D
27 | ```
28 |
29 | or
30 |
31 | ```bash
32 | npm i vite-plugin-vue-setup-extend-plus -D
33 | ```
34 |
35 | ## Usage
36 |
37 | - Config plugin in vite.config.ts. In this way, the required functions can be introduced as needed
38 |
39 | ```ts
40 | import { defineConfig, Plugin } from 'vite'
41 | import vue from '@vitejs/plugin-vue'
42 | import vueSetupExtend from 'vite-plugin-vue-setup-extend-plus'
43 |
44 | export default defineConfig({
45 | plugins: [vue(), vueSetupExtend()],
46 | })
47 | ```
48 |
49 | - SFC
50 |
51 | ```html
52 |
53 | hello world {{ a }}
54 |
55 |
56 |
59 | ```
60 |
61 | ## Sample project
62 |
63 | [Vben Admin](https://github.com/anncwb/vue-vben-admin)
64 |
65 | ## License
66 |
67 | MIT
68 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.3
2 |
3 | specifiers:
4 | '@types/node': ^16.0.0
5 | '@vue/compiler-sfc': ^3.2.31
6 | magic-string: ^0.26.1
7 | vite: ^2.4.0
8 |
9 | devDependencies:
10 | '@types/node': registry.npmmirror.com/@types/node/16.11.26
11 | '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.31
12 | magic-string: registry.npmmirror.com/magic-string/0.26.1
13 | vite: registry.npmmirror.com/vite/2.9.1
14 |
15 | packages:
16 |
17 | registry.npmmirror.com/@babel/parser/7.17.9:
18 | resolution: {integrity: sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.17.9.tgz}
19 | name: '@babel/parser'
20 | version: 7.17.9
21 | engines: {node: '>=6.0.0'}
22 | hasBin: true
23 | dev: true
24 |
25 | registry.npmmirror.com/@types/node/16.11.26:
26 | resolution: {integrity: sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-16.11.26.tgz}
27 | name: '@types/node'
28 | version: 16.11.26
29 | dev: true
30 |
31 | registry.npmmirror.com/@vue/compiler-core/3.2.31:
32 | resolution: {integrity: sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz}
33 | name: '@vue/compiler-core'
34 | version: 3.2.31
35 | dependencies:
36 | '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9
37 | '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.31
38 | estree-walker: registry.npmmirror.com/estree-walker/2.0.2
39 | source-map: registry.npmmirror.com/source-map/0.6.1
40 | dev: true
41 |
42 | registry.npmmirror.com/@vue/compiler-dom/3.2.31:
43 | resolution: {integrity: sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz}
44 | name: '@vue/compiler-dom'
45 | version: 3.2.31
46 | dependencies:
47 | '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.31
48 | '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.31
49 | dev: true
50 |
51 | registry.npmmirror.com/@vue/compiler-sfc/3.2.31:
52 | resolution: {integrity: sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz}
53 | name: '@vue/compiler-sfc'
54 | version: 3.2.31
55 | dependencies:
56 | '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9
57 | '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.31
58 | '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.31
59 | '@vue/compiler-ssr': registry.npmmirror.com/@vue/compiler-ssr/3.2.31
60 | '@vue/reactivity-transform': registry.npmmirror.com/@vue/reactivity-transform/3.2.31
61 | '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.31
62 | estree-walker: registry.npmmirror.com/estree-walker/2.0.2
63 | magic-string: registry.npmmirror.com/magic-string/0.25.9
64 | postcss: registry.npmmirror.com/postcss/8.4.12
65 | source-map: registry.npmmirror.com/source-map/0.6.1
66 | dev: true
67 |
68 | registry.npmmirror.com/@vue/compiler-ssr/3.2.31:
69 | resolution: {integrity: sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz}
70 | name: '@vue/compiler-ssr'
71 | version: 3.2.31
72 | dependencies:
73 | '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.31
74 | '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.31
75 | dev: true
76 |
77 | registry.npmmirror.com/@vue/reactivity-transform/3.2.31:
78 | resolution: {integrity: sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz}
79 | name: '@vue/reactivity-transform'
80 | version: 3.2.31
81 | dependencies:
82 | '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9
83 | '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.31
84 | '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.31
85 | estree-walker: registry.npmmirror.com/estree-walker/2.0.2
86 | magic-string: registry.npmmirror.com/magic-string/0.25.9
87 | dev: true
88 |
89 | registry.npmmirror.com/@vue/shared/3.2.31:
90 | resolution: {integrity: sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz}
91 | name: '@vue/shared'
92 | version: 3.2.31
93 | dev: true
94 |
95 | registry.npmmirror.com/esbuild-android-64/0.14.34:
96 | resolution: {integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz}
97 | name: esbuild-android-64
98 | version: 0.14.34
99 | engines: {node: '>=12'}
100 | cpu: [x64]
101 | os: [android]
102 | requiresBuild: true
103 | dev: true
104 | optional: true
105 |
106 | registry.npmmirror.com/esbuild-android-arm64/0.14.34:
107 | resolution: {integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz}
108 | name: esbuild-android-arm64
109 | version: 0.14.34
110 | engines: {node: '>=12'}
111 | cpu: [arm64]
112 | os: [android]
113 | requiresBuild: true
114 | dev: true
115 | optional: true
116 |
117 | registry.npmmirror.com/esbuild-darwin-64/0.14.34:
118 | resolution: {integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz}
119 | name: esbuild-darwin-64
120 | version: 0.14.34
121 | engines: {node: '>=12'}
122 | cpu: [x64]
123 | os: [darwin]
124 | requiresBuild: true
125 | dev: true
126 | optional: true
127 |
128 | registry.npmmirror.com/esbuild-darwin-arm64/0.14.34:
129 | resolution: {integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz}
130 | name: esbuild-darwin-arm64
131 | version: 0.14.34
132 | engines: {node: '>=12'}
133 | cpu: [arm64]
134 | os: [darwin]
135 | requiresBuild: true
136 | dev: true
137 | optional: true
138 |
139 | registry.npmmirror.com/esbuild-freebsd-64/0.14.34:
140 | resolution: {integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz}
141 | name: esbuild-freebsd-64
142 | version: 0.14.34
143 | engines: {node: '>=12'}
144 | cpu: [x64]
145 | os: [freebsd]
146 | requiresBuild: true
147 | dev: true
148 | optional: true
149 |
150 | registry.npmmirror.com/esbuild-freebsd-arm64/0.14.34:
151 | resolution: {integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz}
152 | name: esbuild-freebsd-arm64
153 | version: 0.14.34
154 | engines: {node: '>=12'}
155 | cpu: [arm64]
156 | os: [freebsd]
157 | requiresBuild: true
158 | dev: true
159 | optional: true
160 |
161 | registry.npmmirror.com/esbuild-linux-32/0.14.34:
162 | resolution: {integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz}
163 | name: esbuild-linux-32
164 | version: 0.14.34
165 | engines: {node: '>=12'}
166 | cpu: [ia32]
167 | os: [linux]
168 | requiresBuild: true
169 | dev: true
170 | optional: true
171 |
172 | registry.npmmirror.com/esbuild-linux-64/0.14.34:
173 | resolution: {integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz}
174 | name: esbuild-linux-64
175 | version: 0.14.34
176 | engines: {node: '>=12'}
177 | cpu: [x64]
178 | os: [linux]
179 | requiresBuild: true
180 | dev: true
181 | optional: true
182 |
183 | registry.npmmirror.com/esbuild-linux-arm/0.14.34:
184 | resolution: {integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz}
185 | name: esbuild-linux-arm
186 | version: 0.14.34
187 | engines: {node: '>=12'}
188 | cpu: [arm]
189 | os: [linux]
190 | requiresBuild: true
191 | dev: true
192 | optional: true
193 |
194 | registry.npmmirror.com/esbuild-linux-arm64/0.14.34:
195 | resolution: {integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz}
196 | name: esbuild-linux-arm64
197 | version: 0.14.34
198 | engines: {node: '>=12'}
199 | cpu: [arm64]
200 | os: [linux]
201 | requiresBuild: true
202 | dev: true
203 | optional: true
204 |
205 | registry.npmmirror.com/esbuild-linux-mips64le/0.14.34:
206 | resolution: {integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz}
207 | name: esbuild-linux-mips64le
208 | version: 0.14.34
209 | engines: {node: '>=12'}
210 | cpu: [mips64el]
211 | os: [linux]
212 | requiresBuild: true
213 | dev: true
214 | optional: true
215 |
216 | registry.npmmirror.com/esbuild-linux-ppc64le/0.14.34:
217 | resolution: {integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz}
218 | name: esbuild-linux-ppc64le
219 | version: 0.14.34
220 | engines: {node: '>=12'}
221 | cpu: [ppc64]
222 | os: [linux]
223 | requiresBuild: true
224 | dev: true
225 | optional: true
226 |
227 | registry.npmmirror.com/esbuild-linux-riscv64/0.14.34:
228 | resolution: {integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz}
229 | name: esbuild-linux-riscv64
230 | version: 0.14.34
231 | engines: {node: '>=12'}
232 | cpu: [riscv64]
233 | os: [linux]
234 | requiresBuild: true
235 | dev: true
236 | optional: true
237 |
238 | registry.npmmirror.com/esbuild-linux-s390x/0.14.34:
239 | resolution: {integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz}
240 | name: esbuild-linux-s390x
241 | version: 0.14.34
242 | engines: {node: '>=12'}
243 | cpu: [s390x]
244 | os: [linux]
245 | requiresBuild: true
246 | dev: true
247 | optional: true
248 |
249 | registry.npmmirror.com/esbuild-netbsd-64/0.14.34:
250 | resolution: {integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz}
251 | name: esbuild-netbsd-64
252 | version: 0.14.34
253 | engines: {node: '>=12'}
254 | cpu: [x64]
255 | os: [netbsd]
256 | requiresBuild: true
257 | dev: true
258 | optional: true
259 |
260 | registry.npmmirror.com/esbuild-openbsd-64/0.14.34:
261 | resolution: {integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz}
262 | name: esbuild-openbsd-64
263 | version: 0.14.34
264 | engines: {node: '>=12'}
265 | cpu: [x64]
266 | os: [openbsd]
267 | requiresBuild: true
268 | dev: true
269 | optional: true
270 |
271 | registry.npmmirror.com/esbuild-sunos-64/0.14.34:
272 | resolution: {integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz}
273 | name: esbuild-sunos-64
274 | version: 0.14.34
275 | engines: {node: '>=12'}
276 | cpu: [x64]
277 | os: [sunos]
278 | requiresBuild: true
279 | dev: true
280 | optional: true
281 |
282 | registry.npmmirror.com/esbuild-windows-32/0.14.34:
283 | resolution: {integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz}
284 | name: esbuild-windows-32
285 | version: 0.14.34
286 | engines: {node: '>=12'}
287 | cpu: [ia32]
288 | os: [win32]
289 | requiresBuild: true
290 | dev: true
291 | optional: true
292 |
293 | registry.npmmirror.com/esbuild-windows-64/0.14.34:
294 | resolution: {integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz}
295 | name: esbuild-windows-64
296 | version: 0.14.34
297 | engines: {node: '>=12'}
298 | cpu: [x64]
299 | os: [win32]
300 | requiresBuild: true
301 | dev: true
302 | optional: true
303 |
304 | registry.npmmirror.com/esbuild-windows-arm64/0.14.34:
305 | resolution: {integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz}
306 | name: esbuild-windows-arm64
307 | version: 0.14.34
308 | engines: {node: '>=12'}
309 | cpu: [arm64]
310 | os: [win32]
311 | requiresBuild: true
312 | dev: true
313 | optional: true
314 |
315 | registry.npmmirror.com/esbuild/0.14.34:
316 | resolution: {integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.34.tgz}
317 | name: esbuild
318 | version: 0.14.34
319 | engines: {node: '>=12'}
320 | hasBin: true
321 | requiresBuild: true
322 | optionalDependencies:
323 | esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.14.34
324 | esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.14.34
325 | esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.14.34
326 | esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.14.34
327 | esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.14.34
328 | esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.14.34
329 | esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.14.34
330 | esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.14.34
331 | esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.14.34
332 | esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.14.34
333 | esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.14.34
334 | esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.14.34
335 | esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.14.34
336 | esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.14.34
337 | esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.14.34
338 | esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.14.34
339 | esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.14.34
340 | esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.14.34
341 | esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.14.34
342 | esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.34
343 | dev: true
344 |
345 | registry.npmmirror.com/estree-walker/2.0.2:
346 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz}
347 | name: estree-walker
348 | version: 2.0.2
349 | dev: true
350 |
351 | registry.npmmirror.com/fsevents/2.3.2:
352 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
353 | name: fsevents
354 | version: 2.3.2
355 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
356 | os: [darwin]
357 | requiresBuild: true
358 | dev: true
359 | optional: true
360 |
361 | registry.npmmirror.com/function-bind/1.1.1:
362 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz}
363 | name: function-bind
364 | version: 1.1.1
365 | dev: true
366 |
367 | registry.npmmirror.com/has/1.0.3:
368 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz}
369 | name: has
370 | version: 1.0.3
371 | engines: {node: '>= 0.4.0'}
372 | dependencies:
373 | function-bind: registry.npmmirror.com/function-bind/1.1.1
374 | dev: true
375 |
376 | registry.npmmirror.com/is-core-module/2.8.1:
377 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz}
378 | name: is-core-module
379 | version: 2.8.1
380 | dependencies:
381 | has: registry.npmmirror.com/has/1.0.3
382 | dev: true
383 |
384 | registry.npmmirror.com/magic-string/0.25.9:
385 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz}
386 | name: magic-string
387 | version: 0.25.9
388 | dependencies:
389 | sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8
390 | dev: true
391 |
392 | registry.npmmirror.com/magic-string/0.26.1:
393 | resolution: {integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.26.1.tgz}
394 | name: magic-string
395 | version: 0.26.1
396 | engines: {node: '>=12'}
397 | dependencies:
398 | sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8
399 | dev: true
400 |
401 | registry.npmmirror.com/nanoid/3.3.2:
402 | resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.2.tgz}
403 | name: nanoid
404 | version: 3.3.2
405 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
406 | hasBin: true
407 | dev: true
408 |
409 | registry.npmmirror.com/path-parse/1.0.7:
410 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz}
411 | name: path-parse
412 | version: 1.0.7
413 | dev: true
414 |
415 | registry.npmmirror.com/picocolors/1.0.0:
416 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz}
417 | name: picocolors
418 | version: 1.0.0
419 | dev: true
420 |
421 | registry.npmmirror.com/postcss/8.4.12:
422 | resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz}
423 | name: postcss
424 | version: 8.4.12
425 | engines: {node: ^10 || ^12 || >=14}
426 | dependencies:
427 | nanoid: registry.npmmirror.com/nanoid/3.3.2
428 | picocolors: registry.npmmirror.com/picocolors/1.0.0
429 | source-map-js: registry.npmmirror.com/source-map-js/1.0.2
430 | dev: true
431 |
432 | registry.npmmirror.com/resolve/1.22.0:
433 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz}
434 | name: resolve
435 | version: 1.22.0
436 | hasBin: true
437 | dependencies:
438 | is-core-module: registry.npmmirror.com/is-core-module/2.8.1
439 | path-parse: registry.npmmirror.com/path-parse/1.0.7
440 | supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0
441 | dev: true
442 |
443 | registry.npmmirror.com/rollup/2.70.1:
444 | resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.70.1.tgz}
445 | name: rollup
446 | version: 2.70.1
447 | engines: {node: '>=10.0.0'}
448 | hasBin: true
449 | optionalDependencies:
450 | fsevents: registry.npmmirror.com/fsevents/2.3.2
451 | dev: true
452 |
453 | registry.npmmirror.com/source-map-js/1.0.2:
454 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz}
455 | name: source-map-js
456 | version: 1.0.2
457 | engines: {node: '>=0.10.0'}
458 | dev: true
459 |
460 | registry.npmmirror.com/source-map/0.6.1:
461 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz}
462 | name: source-map
463 | version: 0.6.1
464 | engines: {node: '>=0.10.0'}
465 | dev: true
466 |
467 | registry.npmmirror.com/sourcemap-codec/1.4.8:
468 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz}
469 | name: sourcemap-codec
470 | version: 1.4.8
471 | dev: true
472 |
473 | registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0:
474 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz}
475 | name: supports-preserve-symlinks-flag
476 | version: 1.0.0
477 | engines: {node: '>= 0.4'}
478 | dev: true
479 |
480 | registry.npmmirror.com/vite/2.9.1:
481 | resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-2.9.1.tgz}
482 | name: vite
483 | version: 2.9.1
484 | engines: {node: '>=12.2.0'}
485 | hasBin: true
486 | peerDependencies:
487 | less: '*'
488 | sass: '*'
489 | stylus: '*'
490 | peerDependenciesMeta:
491 | less:
492 | optional: true
493 | sass:
494 | optional: true
495 | stylus:
496 | optional: true
497 | dependencies:
498 | esbuild: registry.npmmirror.com/esbuild/0.14.34
499 | postcss: registry.npmmirror.com/postcss/8.4.12
500 | resolve: registry.npmmirror.com/resolve/1.22.0
501 | rollup: registry.npmmirror.com/rollup/2.70.1
502 | optionalDependencies:
503 | fsevents: registry.npmmirror.com/fsevents/2.3.2
504 | dev: true
505 |
--------------------------------------------------------------------------------