1.5.9 • Published 5 years ago

mpvue-entry v1.5.9

Weekly downloads
58
License
MIT
Repository
github
Last release
5 years ago

mpvue-entry

集中式页面配置,自动生成各页面的入口文件,优化目录结构,支持新增页面热更新

npm package npm downloads build status codecov codebeat badge license

目录结构

├─build
├─config
├─src
│ ├─components
│ ├─pages
│ │  └─news
│ │     │─list.vue
│ │     └─detail.vue
│ ├─App.vue
│ ├─app.json
│ └─main.js
└─package.json

原理

以主入口文件为模板,使用配置文件中的 pathconfig 属性分别替换 vue 文件导入路径导出信息

Quickstart

https://github.com/F-loat/mpvue-quickstart

vue init F-loat/mpvue-quickstart my-project

安装

npm i mpvue-entry@next -D

使用

v2.0 版本仅支持 mpvue-loader@^1.1.0,兼容 megalo

  • mpvue
// webpack.base.conf.js
const MpvueEntry = require('mpvue-entry')

module.exports = {
  entry: () => MpvueEntry.getEntry(),
  ...
  plugins: [
    new MpvueEntry(),
    ...
  ]
}
  • megalo
// createBaseConfig.js
const MpvueEntry = require('mpvue-entry')

module.exports = {
  entry: MpvueEntry.getEntry(), // 不支持动态更新
  ...
  plugins: [
    new MpvueEntry({
      overwrite: true // 强制覆盖已有配置
    }),
    ...
  ]
}
// app.json
{
  "pages": [
    {
      "path": "pages/news/list", // 页面路径,同时是 vue 文件相对于 src 的路径,必填
      "config": { // 页面配置,即 page.json 的内容,可选
        "navigationBarTitleText": "文章列表",
        "enablePullDownRefresh": true
      }
    }
  ],
  "window": {}
}

参数

  • paths: String/Object

paths 为 String 类型时作为 pages 的值,为绝对路径或相对于项目根目录的相对路径

propertydefaultdescribe
config'src/app.json'项目配置文件
main'src/main.js'主入口文件,作为模板
template'src/main.js'入口模板文件,优先级较高
entry'mpvue-entry/dist/'各页面入口文件目录
// 示例
MpvueEntry.getEntry({
  config: 'src/app.js',
  main: 'src/index.js'
})
  • pages [String/Object]

pages 元素为 String 类型时作为 path 的值,为绝对路径或相对于项目根目录的相对路径

propertytypedefaultdescribe
pathString-文件路径
configObject{}页面配置
routeString-页面路由
nativeBooleanfalse原生页面
subPackageBooleanfalse分包加载
rootString-分包根路径
nameStringroot分包别名
independentBooleanfalse独立分包
// 示例
[{
  path: 'pages/news/list',
  route: 'pages/news/list/main'
}, {
  path: 'package/news/detail',
  root: 'package/news',
  subPackage: true,
  independent: true
}]

Tips

  • 首页为 pages.js 中的第一项

  • 可通过以下形式的注释指定 main.js 特有代码

console.log('hello world') // app-only

/* app-only-begin */
console.log('happy')
console.log('coding')
/* app-only-end */
  • 官方模板生成的项目请务必去除以下配置
// webpack.base.conf.js
module.exports = {
  plugins: [
    new CopyWebpackPlugin([{
      from: '**/*.json',
      to: ''
    }], {
      context: 'src/'
    }),
    ...
  ]
}

Thanks

2.0.0-rc.10

5 years ago

2.0.0-rc.9

5 years ago

2.0.0-rc.8

5 years ago

2.0.0-rc.7

5 years ago

2.0.0-rc.6

5 years ago

2.0.0-rc.5

5 years ago

2.0.0-rc.4

5 years ago

2.0.0-rc.3

5 years ago

2.0.0-rc.2

5 years ago

2.0.0-rc.1

5 years ago

1.5.9

5 years ago

1.5.8

6 years ago

1.5.7

6 years ago

1.5.6

6 years ago

1.5.5

6 years ago

1.5.4

6 years ago

1.5.3

6 years ago

1.5.2

6 years ago

1.5.1

6 years ago

1.5.0

6 years ago

1.4.7

6 years ago

1.4.6

6 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.0

6 years ago

1.2.9

6 years ago

1.2.8

6 years ago

1.2.7

6 years ago

1.2.6

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.8

6 years ago

1.1.7

6 years ago

1.1.6

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

0.4.3

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.3.7

6 years ago

0.3.6

6 years ago

0.3.5

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.3

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago