mpvue-entry
集中式页面配置,自动生成各页面的入口文件,优化目录结构,支持新增页面热更新
目录结构
├─build├─config├─src│ ├─components│ ├─pages│ │ └─news│ │ │─list.vue│ │ └─detail.vue│ ├─App.vue│ ├─main.js│ └─pages.js└─package.json
原理
以 src/main.js
为模板,使用配置文件中的 path
及 config
属性分别替换 vue 文件导入路径
及 导出信息
Quickstart*
vue init F-loat/mpvue-quickstart my-project
安装
npm i mpvue-entry -D
使用
v1.5.0 版本开始支持 mpvue-loader@^1.1.0 版本,新版 src 目录下需存在 app.json 文件,预计 v2.0 版本不再兼容旧版 mpvue-loader
// webpack.base.conf.jsconst MpvueEntry =moduleexports =entry: MpvueEntry...plugins:...
// pages.jsmoduleexports =path: 'pages/news/list' // 页面路径,同时是 vue 文件相对于 src 的路径,必填config: // 页面配置,即 page.json 的内容,可选navigationBarTitleText: '文章列表'enablePullDownRefresh: true
// 官方模板生成的项目请务必去除以下配置moduleexports =plugins:from: '**/*.json'to: ''context: 'src/'...
参数
MpvueEntry
- paths
String/Object
paths 为 String 类型时作为 pages 的值,自定义值为绝对路径或相对于项目根目录的相对路径(这里的相对路径实际上是相对于被执行文件的上级目录的)
// 默认值// 页面配置文件pages: 'src/pages.js'// 主入口文件,作为模板main: 'src/main.js'// 入口模板文件,优先级较高template: 'src/main.js'// 项目配置文件app: 'src/app.json' // 新app: 'dist/app.json' // 旧// 项目构建目录dist: 'dist/'// 各页面入口文件目录entry: 'mpvue-entry/dist/'// 示例MpvueEntry
Tips
-
首页默认为
pages.js
中的第一项,但会被main.js
中的配置覆盖 -
path
属性兼容绝对路径,且仅指定path
属性时可简写为字符串形式
// pages.jsmoduleexports ='/pages/news/list''/pages/news/detail'
- 可通过以下形式的注释指定
main.js
特有代码
console // app-only/* app-only-begin */consoleconsole/* app-only-end */
- 可通过
route
属性指定页面路由
// pages.jsmoduleexports =path: 'pages/news/list'route: 'pages/news/list/main'
- 可通过
native
属性指定页面为原生开发,不做编译处理
// pages.jsmoduleexports =path: 'pages/news/list'native: true
- 可通过
subPackage
属性指定页面需分包加载(配合 Quickstart 模板使用效果更佳)
// pages.jsmoduleexports =path: 'packageA/news/detail'subPackage: true
- 可通过
root
属性指定分包根路径,指定后subPackage
属性会自动置为true
- 可通过
name
属性指定分包别名,默认为分包目录名称,用于分包预下载时使用 - 可通过
independent
属性指定分包是否是独立分包,默认为非独立分包
// pages.jsmoduleexports =path: 'pages/news/detail'root: 'pages/news'
示例
以 mpvue-loader@1.1.0 为界