【初始化】前端工程项目

This commit is contained in:
chudong
2025-05-09 15:11:21 +08:00
parent c012704c9a
commit d7c556c3b0
524 changed files with 55595 additions and 112 deletions

View File

@@ -0,0 +1,16 @@
import baseConfig from '@baota/eslint'
/** @type {import("eslint").Linter.Config[]} */
const config = [
// 基础配置,用于通用的 JavaScript/TypeScript 规则
...baseConfig,
// 项目特定的配置覆盖
{
files: ['**/*.{js,ts}'],
rules: {
// 在此处添加项目特定的规则覆盖
},
},
]
export default config

View File

@@ -0,0 +1,51 @@
{
"name": "@baota/pinia",
"version": "1.0.0",
"description": "Pinia",
"type": "module",
"files": [
"dist/**",
"dist"
],
"scripts": {
"build": "vite build",
"dev": "vite build --watch"
},
"exports": {
".": {
"development": {
"types": "./src/index.ts",
"import": "./src/index.ts",
"require": "./src/index.ts"
},
"default": {
"types": "./dist/index.d.ts",
"import": "./dist/index.mjs",
"require": "./dist/index.cjs"
}
},
"./utils": {
"development": {
"types": "./src/utils.ts",
"import": "./src/utils.ts",
"require": "./src/utils.ts"
},
"default": {
"types": "./dist/utils.d.ts",
"import": "./dist/utils.mjs",
"require": "./dist/utils.cjs"
}
}
},
"dependencies": {
"pinia": "^2.3.0",
"pinia-plugin-persistedstate": "^4.2.0"
},
"devDependencies": {
"@baota/eslint": "workspace:*",
"@baota/typescript": "workspace:*",
"@baota/prettier": "workspace:*",
"vite": "^5.0.0",
"vite-plugin-dts": "^3.0.0"
}
}

View File

@@ -0,0 +1,3 @@
import prettierConfig from '@baota/prettier'
export default prettierConfig

View File

@@ -0,0 +1,10 @@
import { createPinia, defineStore, storeToRefs } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
// 创建pinia实例
const pinia = createPinia()
// 全局持久化
pinia.use(piniaPluginPersistedstate)
export { pinia, defineStore, storeToRefs }

View File

@@ -0,0 +1,15 @@
import { StoreDefinition, storeToRefs } from 'pinia'
/**
* 使用pinia store
* @param store
* @returns
*/
export function usePiniaStore<T extends StoreDefinition>(store: T) {
const storeVal = store()
const storeRef = storeToRefs(storeVal)
return {
...storeVal,
...storeRef,
}
}

View File

@@ -0,0 +1,11 @@
{
"extends": "@baota/typescript/base.json",
"include": ["**/*.{js,ts,jsx,tsx}", "eslint.config.ts", "./types.d.ts"],
"compilerOptions": {
"outDir": "dist", // 输出目录
"baseUrl": "./",
"rootDir": "src",
"sourceMap": true
},
"exclude": ["node_modules", "dist"]
}

View File

@@ -0,0 +1,37 @@
import { defineConfig } from 'vite'
import { resolve } from 'path'
import dts from 'vite-plugin-dts'
export default defineConfig({
plugins: [
dts({
include: ['*.ts'],
beforeWriteFile: (filePath, content) => ({
filePath: filePath.replace(/src/, ''),
content,
}),
}),
],
build: {
outDir: resolve(__dirname, 'dist'),
emptyOutDir: true,
lib: {
entry: {
index: resolve(__dirname, 'src/index.ts'),
utils: resolve(__dirname, 'src/utils.ts'),
},
name: 'BaotaPinia',
formats: ['es', 'cjs'],
fileName: (format, entryName) => `${entryName}.${format === 'es' ? 'mjs' : 'cjs'}`,
},
rollupOptions: {
external: ['pinia', 'pinia-plugin-persistedstate'],
output: {
globals: {
pinia: 'Pinia',
'pinia-plugin-persistedstate': 'piniaPluginPersistedstate',
},
},
},
},
})