脚手架简介
本文介绍项目初始化结构及其子目录的构成。
初始化结构
项目初始化结构如下:
project
├── mock
│ ├── mock.config.js
│ └── rpc
│ └── test.js
├── package.json
├── www
└── src
├── common
│ ├── components
│ ├── css
│ │ └── base.less
│ ├── img
│ └── js
├── layout
│ ├── index.html
│ └── layout.html
└── pages
└── index
├── components
├── index.js
└── store
子目录
mock
该目录提供了一种数据 mock 方式,即使用 cnpm run dev:mock
启动时,会自动加载其中的 rpc 目录和 jsapi 目录的对应数据接口。
package.json
在 package.json
文件中的 kylinApp
字段包含了项目配置的元信息,主要有 pages
、output
、devPort
、plugins
、dirAlias
。
简单举例如下:
{
"kylinApp": {
"output": "www",
"pages": {
"index": {...}
},
"devPort": 8090,
"dirAlias": {
"common": "./src/common/",
"pages": "./src/pages/"
},
"plugins": [
]
}
}
www
执行 cnpm run build 后,会自动将构建产物输出到 www 目录中。
src/common
用以放置项目中使用的 CSS、JS、IMG 文件。
src/layout
对应 ./src/pages/${pageName}
的各个页面,可以在 package.json
中配置对应页面使用的 HTML 模板路径。支持 Nunjucks 语法。
src/pages
此目录用于存放各个页面。页面存放于 ./src/pages/${pageName}/
目录下,各页面分别包含 components
, store
和 index.js
。
components 目录中,每个组件都是 Vue 组件,具体编写规范请参考 组件规范。
store 目录中,有一个 Vuex.Store 实例,具体使用请参考 状态注入。
index.js 为当前 page 的主入口,这里的 page 页面最后会生成一个特定的
${pageName}.html
页面。
常用参数
下表的常用参数是指 kylinApp 下一级中,除了 pages、plugins 之外的所有键值。pages、plugins 将在下文单独展开。
参数名 | 类型 | 默认值 | 备注 |
---|---|---|---|
output | String | dist | 输出相对目录。 |
devPort | Number | 8090 | dev 模式监听的 IPv4 端口号(0.0.0.0:devPort)。 |
dirAlias | Record | {} | 等同于 |
pageTemplate | String | - | 公共 Nunjucks 模板。 |
pages
此处列举 pages
键值对下的配置项,示例中的 home
表示以下配置均为对 pageName
为 home
的页面生效。
{
"kylinApp": {
"pages": {
"home": {
... // 这里的字段
}
}
}
}
字段名 | 类型 | 备注 |
---|---|---|
entry | String | 相对路径,指向当前页面的 JS 打包入口。 |
template | String | 相对路径,指向当前页面的 HTML 打包路径,如果为空,会寻找 |
plugins
kylinApp.plugins
字段,是一个数组,支持按需加载各个插件。
{
kylinApp: {
plugins: [
"xxxx",
["yyyy",{ a: 1 }],
"zzzz",
["6666",{ b: 1 }]
]
}
}
支持传入的形式有 2 种,分别是 默认配置 和 扩展配置 方式,在上述的示例中,引入了 4 个插件。
@ali/kylin-plugin-xxxx,以默认配置加载。
@ali/kylin-plugin-yyyy,以
{a:1}
选项加载。@ali/kylin-plugin-zzzz,以默认配置加载。
@ali/kylin-plugin-6666,以
{b:1}
选项加载。
已有插件
目前,支持配置的插件有 mock
、resource
,分别参见以下文档: