Appearance
层
层的结构与普通的Vixt项目相同,继承层将会复用层内的组件、函数、配置等,这使得层可以作为一个可复用的项目,提高开发效率。
层的使用
本地层
假设monorepo中是这样一个结构,那么 web
项目和 app
项目都将继承 layer-shared
的vixt配置
-| packages/
---| layer-shared
-----| src
-----| vixt.config.ts
---| web
-----| src
-----| vixt.config.ts
---| app
-----| src
-----| vixt.config.ts
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
meta: { name: 'layer-shared' },
typescript: {
typeCheck: { vueTsc: true },
},
})
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
extends: ['../layer-shared'],
})
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
extends: ['../layer-shared'],
})
远程层
合法的npm包也可以作为层来使用,只需将层的vixt.config.ts文件作为包入口即可
json
{
"name": "@vixt/layer-shared",
"type": "module",
"main": "vixt.config.ts",
"devDependencies": {
"vixt": "latest"
}
}
json
{
"name": "web",
"type": "module",
"dependencies": {
"vixt": "latest",
"@vixt/layer-shared": "latest"
}
}
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
extends: ['@vixt/layer-shared'],
})
层继承层
层也可以继承层,从而实现更复杂的继承关系
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
meta: { name: 'layer-shared' },
typescript: {
typeCheck: { vueTsc: true },
},
})
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
meta: { name: 'layer-web' },
extends: ['../layer-shared'],
devtools: { enabled: true }
})
ts
import { defineVixtConfig } from 'vixt'
export default defineVixtConfig({
extends: ['../layer-web'],
// 或者继承多个层
// extends: ['../layer-web', '../layer-other'],
})