Use vite to customize the build your Vue3&TypeScript company project
ๅๅงๅ้กน็ฎๅบไบ่ๆๆถๅทฅๅ ทVite
ๆญๅปบ,ๆๆฏๆกๆถVue3
ๅนถไฝฟ็จTypeScript
่ฏญ่จๅผๅ,ๅ ถไปไฝฟ็จๆ ธๅฟๆๆฏๅฆ:Vue-Router๏ฟฝ + vite-plugin-pages
Pinia
.
yarn
yarn run dev
yarn run build (for production)
yarn run build:test (for pre)
yarn run test:unit
yarn run lint:eslint
yarn run lint:stylelint
yarn run reinstall
ๆฐๅปบๆไปถๆ็ฎๅฝๅฝๅ็ปไธ้ๅ้ฉผๅณฐๅฝๅ๏ผไพๅฆ editorPlus.
1ใๆ ทๅผๅฝๅ็ปไธ้ๅไธญๅ็บฟๆนๅผ๏ผไพๅฆ class-*-. 2ใๅบ็กๆ ทๅผๅทฒ้ ็ฝฎๅฐๅ จๅฑ,ๅฆๆๆๆฐๆทปๅ ็ๅ ๅฎนๅฏไปฅๆๆจกๅๆทปๅ ๆไปถๅคนๆ่กฅๅ ๅฐๆไปถไธญ,ๅฝๅๅฏน ant, transition,้็จๅ้ๆทปๅ .
้กน็ฎไธญๅฐฝ้ไฝฟ็จๅญไฝๅพๆ ,ๅพๆ ไธไผ ๅฐ ้ฟ้ๅทดๅทด iconfont,ไธไผ ๆๅๅๅทๆฐๅนถๆฟๆข index.html ไธญ้พๆฅ.
้กน็ฎไธญ้ป่ฎคๅทฒ็ป้จ็ฝฒ Pinia,ๆฐๆจกๅๅๅปบๆถ้่ฆๅๅปบๆไปถๅคนๅๅญๆไปถ
***.ts
,ไฝฟ็จๆถไป ้้ซๅฆ่ฏฅๆจกๅๅณๅฏ. ๅปบ่ฎฎๅจ้กน็ฎไธญๅฏไปฅๅฐ่ฏreactive ref
ๆฟไปฃPinia
.
้กน็ฎๅบไบ
File Base URL
ๅ ๆญคๆ ้ๆๅจๆฐๅปบ่ทฏ็ฑ๏ผไฝๅฟ ้กป่ฆๆณจๆๅจpages็ฎๅฝไธๆฐๅปบๆไปถๅญๆไปถๅช่ฝๆฏindex.vue
ๆไธๆฅๅ ฅ,ไฝไธบ fix ็ๆฌๆฅๅ ฅ,ๆฅๅ ฅๅ่กฅๅ ๆๆกฃ
e-card-business
โโ .editorconfig
โโ .env โ็ฏๅข้
็ฝฎๆไปถ
โโ .env.development
โโ .env.production
โโ .env.test
โโ .eslintignore
โโ .eslintrc.js
โโ .husky โ git hook
โ โโ _
โ โ โโ husky.sh
โ โโ commit-msg
โ โโ common.sh
โ โโ pre-commit
โโ .prettierignore
โโ .prettierrc
โโ .stylelintignore
โโ README.md
โโ build โ ๆๅ
้
็ฝฎๆไปถ
โ โโ config
โ โ โโ themeConfig.ts
โ โโ constant.ts
โ โโ generate
โ โ โโ generateModifyVars.ts
โ โโ getConfigFileName.ts
โ โโ index.ts
โ โโ script
โ โโ buildChunk.ts
โ โโ buildConf.ts
โ โโ buildServer.ts
โโ commitlint.config.js
โโ index.html
โโ jest.config.js
โโ mock โๆฅๅฃmock้
็ฝฎๆไปถ
โ โโ _createProductionServer.ts
โ โโ index.ts
โโ package.json
โโ postcss.config.js
โโ public
โ โโ favicon.ico
โ โโ resource
โ โโ img
โ โโ logo.png
โโ src
โ โโ App.vue
โ โโ assets โ ้ๆ่ตๆบ
โ โ โโ fonts
โ โ โโ images
โ โ โ โโ logo.png
โ โ โโ svg
โ โโ components โ ๅ
ฌๅ
ฑ็ปไปถ
โ โ โโ camcard
โ โ โโ index.vue
โ โโ constants โ ๅธธ้ๅๆไธพ็ฑปๅ
โ โ โโ enum.ts
โ โ โโ index.ts
โ โโ env.d.ts
โ โโ hooks โhook้ฉๅญๅฝๆฐ
โ โ โโ useMessage.tsx
โ โโ i18n โๅค่ฏญ่จ
โ โ โโ en-US.json
โ โ โโ zh-CN.json
โ โโ layouts
โ โ โโ default.vue
โ โโ main.ts
โ โโ pages โ้กต้ข๏ผFIle Base Router
โ โ โโ editor
โ โ โ โโ index.less
โ โ โ โโ index.vue
โ โ โโ index.vue
โ โ โโ login
โ โ โ โโ index.less
โ โ โ โโ index.vue
โ โ โโ pay
โ โ โโ index.vue
โ โโ router โๅบ็ก่ทฏ็ฑ้
็ฝฎ
โ โ โโ index.ts
โ โโ services
โ โ โโ auth.ts
โ โ โโ index.ts
โ โโ store โ็ถๆ็ฎก็
โ โ โโ index.ts
โ โ โโ modules
โ โ โโ auth
โ โ โ โโ index.ts
โ โ โโ login
โ โโ styles โๅธธ็จๆ ทๅผ้
็ฝฎ
โ โโ utils โๅทฅๅ
ท้
็ฝฎ
โ โโ axios โaxiosๅฐ่ฃ
โ โโ dom โdomๆไฝ
โ โโ env.ts
โ โโ file โๆไปถ็ณป็ปๆไฝ
โ โโ flog โๅ็นๅๆฅๅฟๆไฝ
โ โโ is.ts โๅธธ็จๅคๆญ็ฑปๅๅทฅๅ
ท
โ โโ log.ts โconsoleๅฐ่ฃ
โโ stylelint.config.js
โโ test โๅๅ
ๆต่ฏ
โโ tsconfig.json
โโ tsconfig.node.json
โโ types โๅ
จๅฑ็ฑปๅๅฃฐๆ
โโ vite.config.ts
โโ windi.config.ts โ windicss้
็ฝฎ
โโ yarn.lock
- ๆฏๆ
Pinia
็ถๆ็ฎก็; - ๆฏๆ
vue3 API
๏ผImage
่ชๅจๅฏผๅ ฅ๏ผไนๅฏไปฅๆๅจ้ ็ฝฎๅ จๅฑๆ้จๅๆไปถๅคน็็ปไปถ่ชๅฎไนๅฏผๅ ฅ๏ผ
**ไฝฟ็จๅๆ๏ผ** ๅฎ่ฃ
`vue-global-api`ๅนถ้
็ฝฎ`.eslintrc.js `->`extends:[โvue-global-apiโ]`
const test = ref(10)
onMounted(() => {
console.log('mounted===')
})
**็ปไปถ่ชๅฎไนๅฏผๅ
ฅ๏ผ**
Components({
...,
resolvers: [
name => {
// where `name` is always CapitalCase
if (name.startsWith('App')) {
return { importName: 'default', path: `./components/$ {kebabCase(name)}/index.vue` }
}
}
]
})
......
- ๅบไบ
Vue-Router
,ไฝฟ็จvite-plugin-pages
ๅฎ็ฐFile Base Router
๏ผ - ๆฏๆ
TSX
่ฏญๆณ; - ๆฏๆ
axios
, ไบๆฌกๅฐ่ฃ ๅฎๆ; - ๆฏๆ
jest
ๅๅ ๆต่ฏ๏ผ - ๆฏๆ
Mock
ๆฐๆฎ; - ๆฏๆ
i18n
ๅฝ้ ๅ,ๅ จๅฑ้ ็ฝฎๅฎๆ; - ๆฏๆ
dayjs
,ๆฅๆๆ ผๅผๅ; - ๆฏๆ
lodash
,ๅ จๅฑๆณจๅ ฅ้ฒๆไธ่ๆต; - ๆฏๆ
Less
; - ๆฏๆ
windicss
๏ผไผๅฟๆฏๅคงๅคๆฐๆ ๅตๆ ้้ขๅค็ผๅcssๆไปถ; - ๆฏๆ
ant-desgin-vue
,ๆ ทๅผ่ชๅจๅฏผๅ ฅ๏ผUI ็ปไปถๅทฒๆ้ๅ ่ฝฝ, ็นๆฎ็ๅฆmessage ็ญ้็ปไปถๅๆจกๅๆ ทๅผไป้ๆๅจๆณจๅ ฅ; - ๆฏๆ
styleLint
,eslint
,prettier
๏ผ่ฏญๆณๆฃๆฅ; - ๆฏๆๅฝไปค่กๅทฅๅ
ท
cross_env
(่ฎพ็ฝฎ่ๆฌๅ้),rimraf
,dotenv
(ๅฐ็ฏๅขๅ้ๅ ่ฝฝๅฐ process.env),้ ๅvite .env.**
ๅฏนไธๅ็ฏๅขไฝๅบๅ; - ๆฏๆ
Git Hook
(husky
),่ๆฌๆฏๆlint-stage
ๆฃๆฅ; - ๆฏๆ
esno
,ๅบไบ esbuild ็ TS/ESNext node ่ฟ่กๆถ;
้กน็ฎๅฏน git ๆต็จๅๅผบๅถ่ง่
- checkout ๅๆฏ: git checkout -b feature/xxxx
- commit ๆไบค: git commit -m 'feature: add xxxxx'
- master ็ไบง็ฏๅขๅๆฏ
- pre ้ขๅ็ฏๅขๅๆฏ
- daily ๅ ฌๅ ฑๆฅๅธธๅผๅๅๆฏ(daily/1.0.0)
- bugfix ไฟฎๅค bug
- feature ๆฐๅขๅ่ฝ
- JSX ๆจกๅๅฏผๅบๆฏๆ,่ฏญๆณไฝฟ็จๅปบ่ฎฎๅ่Babel Plugin JSX
import { defineComponent } from 'vue'
// named exports w/ variable declaration: ok
export const Foo = defineComponent({})
// named exports referencing variable declaration: ok
const Bar = defineComponent({ render() { return <div>Test</div> }})
export { Bar }
// default export call: ok
export default defineComponent({ render() { return <div>Test</div> }})
// default export referencing variable declaration: ok
const Baz = defineComponent({ render() { return <div>Test</div> }})
export default Baz
- ๆฐๅปบๆๆทปๅ ๆไปถๅ,้่ฟ
project-tree
ๆดๆฐ้กน็ฎ็ปๆๆ
vscode
ๆจ่ๅฎ่ฃVue Language Features (Volar)
ๅEditorConfig for VS Code
vscode
ๆจ่ๅฎ่ฃproject-tree
vscode
ๆจ่ๅฎ่ฃWindiCSS
- npm package publish
- ๅ ๅ ฅๆฅๅฟ็ณป็ป