未验证 提交 3bdb469b 编辑于 作者: cyole's avatar cyole
浏览文件

chore: initialize zui demo project

上级
{
"name": "docs",
"type": "module",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "vitepress dev",
"build": "vitepress build",
"preview": "vitepress preview"
},
"dependencies": {
"vue": "^3.5.26"
},
"devDependencies": {
"@vitejs/plugin-vue-jsx": "^5.1.2",
"fast-glob": "^3.3.3",
"unocss": "^66.5.10",
"unplugin-vue-components": "^31.0.0",
"vitepress": "2.0.0-alpha.12",
"vitepress-demo-plugin": "^1.5.1",
"vitepress-plugin-group-icons": "^1.6.5"
}
}
import {
defineConfig,
presetAttributify,
presetIcons,
presetWind4,
} from 'unocss'
export default defineConfig({
shortcuts: [],
presets: [
presetWind4(),
presetAttributify({
ignoreAttributes: [':size'],
}),
presetIcons({
scale: 1.2,
warn: true,
}),
],
})
import antfu from '@antfu/eslint-config'
export default antfu({
formatters: true,
rules: {
'no-console': 'off',
},
ignores: [
'src/**/demos/**',
'src/**/demos/index.md',
],
}, {
files: ['**/*.vue'],
rules: {
'vue/max-attributes-per-line': 'error',
},
}, {
files: ['src/**/demos/*.vue', 'src/**/*.md'],
rules: {
'vue/no-reserved-component-names': 'off',
'vue/no-unused-components': 'off',
'vue/no-unused-refs': 'off',
'prefer-promise-reject-errors': 'off',
'no-template-curly-in-string': 'off',
'unicorn/no-new-array': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'unused-imports/no-unused-vars': 'off',
'regexp/no-unused-capturing-group': 'off',
'unicorn/prefer-number-properties': 'off',
},
})
{
"name": "zui-demo",
"type": "module",
"version": "0.0.0",
"private": true,
"packageManager": "pnpm@10.26.1",
"description": "ZUI demo component library scaffold",
"license": "MIT",
"sideEffects": false,
"exports": {
".": "./es/index.js",
"./package.json": "./package.json"
},
"types": "./es/index.d.ts",
"files": [
"es"
],
"scripts": {
"lint": "eslint . --no-warn-ignored",
"lint:fix": "eslint . --fix --no-warn-ignored",
"build": "tsdown",
"build:docs": "pnpm -C docs build",
"build:prod": "pnpm build:docs",
"dev": "pnpm -C docs dev",
"play": "pnpm -C playground dev",
"test": "vitest",
"test:ui": "vitest --ui --coverage.enabled=true",
"test:coverage": "vitest run --coverage",
"typecheck": "vue-tsc --noEmit",
"prepare": "simple-git-hooks"
},
"peerDependencies": {
"ant-design-vue": "^4.2.0",
"vue": "^3.0.0"
},
"dependencies": {
"ag-grid-enterprise": "^35.0.0",
"ag-grid-vue3": "^35.0.0",
"ant-design-vue": "^4.2.0",
"jss": "^10.10.0",
"jss-plugin-camel-case": "^10.10.0",
"jss-plugin-compose": "^10.10.0",
"jss-plugin-default-unit": "^10.10.0",
"jss-plugin-expand": "^10.10.0",
"jss-plugin-extend": "^10.10.0",
"jss-plugin-global": "^10.10.0",
"jss-plugin-nested": "^10.10.0",
"jss-plugin-props-sort": "^10.10.0",
"jss-plugin-rule-value-function": "^10.10.0",
"jss-preset-default": "^10.10.0",
"type-fest": "^5.3.1",
"vue-component-type-helpers": "^3.2.1"
},
"devDependencies": {
"@antfu/eslint-config": "^7.1.0",
"@antfu/ni": "^28.0.0",
"@types/node": "^25.0.3",
"@vitejs/plugin-vue-jsx": "^5.1.2",
"@vitest/coverage-v8": "^4.0.16",
"@vitest/ui": "^4.0.16",
"@vue/compiler-sfc": "^3.5.26",
"@vue/test-utils": "^2.4.6",
"eslint": "^9.39.2",
"eslint-plugin-format": "^1.1.0",
"fast-glob": "^3.3.3",
"happy-dom": "^20.0.11",
"simple-git-hooks": "^2.13.1",
"tsdown": "0.20.0-beta.4",
"typescript": "^5.9.3",
"unocss": "^66.5.10",
"unplugin-vue": "^7.1.0",
"unplugin-vue-jsx": "^0.8.1",
"vitest": "^4.0.16",
"vue": "^3.5.26",
"vue-tsc": "^3.2.1"
},
"simple-git-hooks": {
"pre-commit": "pnpm lint:fix"
}
}
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ZUI Demo Playground</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
{
"name": "playground",
"type": "module",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.5.26",
"vue-router": "^4.6.4",
"zui-demo": "workspace:*"
},
"devDependencies": {
"unocss": "^66.5.10",
"unplugin-auto-import": "^21.0.0",
"unplugin-vue-components": "^31.0.0",
"unplugin-vue-markdown": "^29.2.0",
"unplugin-vue-router": "^0.19.1",
"vite": "npm:rolldown-vite@latest",
"vite-plugin-vue-layouts": "^0.11.0"
}
}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120">
<rect width="120" height="120" rx="24" fill="#1677ff" />
<path fill="#fff" d="M30 35h60v12H50l39 38H71L32 47z" />
</svg>
<template>
<main>
<RouterView />
</main>
</template>
<template>
<div class="layout">
<RouterView />
</div>
</template>
import { setupLayouts } from 'virtual:generated-layouts'
import { createApp } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from 'vue-router/auto-routes'
import App from './App.vue'
import './styles/main.css'
import 'uno.css'
const app = createApp(App)
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: setupLayouts(routes),
})
app.use(router)
app.mount('#app')
# ZUI Demo Playground
这里用于调试新增组件。
# Test
Playground test page.
html,
body,
#app {
margin: 0;
min-height: 100%;
}
body {
font-family:
Inter,
system-ui,
-apple-system,
BlinkMacSystemFont,
'Segoe UI',
sans-serif;
}
.layout {
padding: 24px;
}
/// <reference types="vite/client" />
{
"extends": "../tsconfig.json",
"compilerOptions": {
"types": [
"node",
"vue-router/auto-routes"
]
},
"include": [
"src",
"typed-router.d.ts",
"auto-imports.d.ts",
"components.d.ts"
]
}
import {
defineConfig,
presetAttributify,
presetIcons,
presetWind4,
} from 'unocss'
export default defineConfig({
shortcuts: [],
presets: [
presetWind4(),
presetAttributify(),
presetIcons({
scale: 1.2,
warn: true,
}),
],
})
import type { ComponentResolver } from 'unplugin-vue-components/types'
import UnoCSS from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import Markdown from 'unplugin-vue-markdown/vite'
import VueRouter from 'unplugin-vue-router/vite'
import Vue from 'unplugin-vue/vite'
import { defineConfig } from 'vite'
import Layouts from 'vite-plugin-vue-layouts'
const componentNameRE = /^(?:Z[A-Z]|z-[a-z])/
function ZuiResolver(): ComponentResolver {
return {
type: 'component',
resolve: (name: string) => {
if (componentNameRE.test(name))
return { name, from: 'zui-demo' }
},
}
}
export default defineConfig({
plugins: [
VueRouter({
extensions: ['.vue', '.md'],
}),
Vue({
include: [/\.vue$/, /\.md$/],
}),
Markdown({}),
Layouts(),
AutoImport({
imports: [
'vue',
{
'vue-router/auto': ['useLink'],
},
],
dts: true,
dirs: [
'./src/composables',
],
vueTemplate: true,
}),
Components({
dts: true,
extensions: ['vue', 'md'],
include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
resolvers: [
ZuiResolver(),
],
}),
UnoCSS(),
],
})
此差异已折叠。
shellEmulator: true
trustPolicy: no-downgrade
packages:
- docs
- playground
- packages/*
- packages/*/docs
overrides:
chokidar: 3.6.0
semver: 7.6.0
ignoredBuiltDependencies:
- esbuild
onlyBuiltDependencies:
- core-js
- simple-git-hooks
export const isBrowser
= typeof document !== 'undefined' && typeof window !== 'undefined'
export const isChrome = isBrowser && 'chrome' in window
export const isFirefox = isBrowser && navigator.userAgent.includes('Firefox')
export const isSafari
= isBrowser && navigator.userAgent.includes('Safari') && !isChrome
支持 Markdown
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册