mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-19 20:45:37 +08:00
【初始化】前端工程项目
This commit is contained in:
16
frontend/packages/pinia/eslint.config.js
Normal file
16
frontend/packages/pinia/eslint.config.js
Normal 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
|
||||
51
frontend/packages/pinia/package.json
Normal file
51
frontend/packages/pinia/package.json
Normal 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"
|
||||
}
|
||||
}
|
||||
3
frontend/packages/pinia/prettier.config.js
Normal file
3
frontend/packages/pinia/prettier.config.js
Normal file
@@ -0,0 +1,3 @@
|
||||
import prettierConfig from '@baota/prettier'
|
||||
|
||||
export default prettierConfig
|
||||
10
frontend/packages/pinia/src/index.ts
Normal file
10
frontend/packages/pinia/src/index.ts
Normal 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 }
|
||||
15
frontend/packages/pinia/src/utils.ts
Normal file
15
frontend/packages/pinia/src/utils.ts
Normal 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,
|
||||
}
|
||||
}
|
||||
11
frontend/packages/pinia/tsconfig.json
Normal file
11
frontend/packages/pinia/tsconfig.json
Normal 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"]
|
||||
}
|
||||
37
frontend/packages/pinia/vite.config.ts
Normal file
37
frontend/packages/pinia/vite.config.ts
Normal 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',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user