{"_id":"@ampjs/entry","_rev":"1-68f681ba676e5dbe8592b696a80738c3","name":"@ampjs/entry","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@ampjs/entry","version":"0.0.1","description":"集中式页面配置，自动生成各页面的入口文件，优化目录结构，支持新增页面热更新","main":"lib/index.js","scripts":{"lint":"eslint --format node_modules/eslint-friendly-formatter --ext .js .","test":"mocha --harmony","test:cover":"istanbul cover ./node_modules/mocha/bin/_mocha --reporter --harmony"},"keywords":["mpvue","entry","webpack"],"author":{"name":"zhaomenghuan","email":"zhaomenghuan@agree.com.cn"},"license":"MIT","homepage":"https://github.com/F-loat/mpvue-entry#readme","devDependencies":{"codecov":"^3.0.2","eslint":"^4.19.1","eslint-config-airbnb-base":"^12.1.0","eslint-friendly-formatter":"^4.0.1","eslint-plugin-import":"^2.11.0","istanbul":"^0.4.5","mocha":"^5.1.1","mpvue-loader":"*","mpvue-router-patch":"^2.0.0","webpack":"^4.29.6"},"dependencies":{"@babel/generator":"^7.1.3","@babel/parser":"^7.1.3","@babel/traverse":"^7.1.4","mkdirp":"^0.5.1","watchr":"^4.0.1"},"_id":"@ampjs/entry@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"ampjs","email":"zhaomenghuan@agree.com.cn"},"dist":{"integrity":"sha512-d7X9smtHZ28lOqOb0P1Le9LX15BtAjEJFAZwYkVQlmuaccFAk/6GhDPjKkE9P/AfJz5sGsyC9UBT/4dqGjkY7g==","shasum":"204241bc3f8f6793f49b9e2298f4edae802cd6e5","tarball":"https://registry.npmjs.org/@ampjs/entry/-/entry-0.0.1.tgz","fileCount":15,"unpackedSize":24265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjn57CRA9TVsSAnZWagAAa/YP/09O3VeVsYhY5bpR3sV+\n6svpnXhaGOXpQpmy2yeyKJxrflWAUaPNSZkCFqveW+Mw4KXHUDfJ6pGTRc7S\n8MVcgdmYBpukq97MZTbWeYz7T0vkU7fTgF8Fn33Sewx8E2QAdZ1gzY/lCK1M\nm12truDR1rgZrN37p9gVwZhiQzE2mi3UF5acLnoae+h05+p8Ugp1SexyFnzy\nKHXb2G+QO+BfowWrs0pypjwGNA+RPkhSt8B4YdT8KukIgKOpHXPS4H9VujAM\ncLJJwxiK8pZG74xyDMc4Rv0qudXU65ud8PXnRcGN4VVqSIUtM6x2yfM59n0p\nAoiJHTSo32QBXdpdFqZFQ4rIL4opyqLVcRndNOK8nhYrBmsHSgHnu4hTuO7B\nOHbbU/IzpBd92VEwZ78HETSABvKJcCtTjfrI9fNJzLoR4scWFOTfSKco8kFh\nmzWvUUBuTEL7OardmTPWJqlyHthOPz2HMgoZm7sJiBe1hd7E/Dh8n09gwybA\nD95oXkYUUf+XvSzuDZt5Fb4OZ5pmoa4GaJneSnzHMo7iUQVG+5ivvu+WUYKj\nnjFzXZ2tfrvpxenSyc1kUVa+Qo+gPQZQmmCNS5FPygxrc6MS78OK32alV0Pb\nTyWqWHsOqa9Ho/lVfbLCWdSc7RDu7ZPCaZR/WGG1BG0+lGgEfHweLrhayRgo\nJreb\r\n=KovD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFJUqkzoLZMxPo142Qwm5aABR31n9Iqb1S366XqbZwJCAiEAr5lXw5afI1R467Bp+3chBnh2qurFJFKjLtVsvo6EXjc="}]},"maintainers":[{"name":"ampjs","email":"zhaomenghuan@agree.com.cn"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/entry_0.0.1_1552842362274_0.29655835885796966"},"_hasShrinkwrap":false}},"time":{"created":"2019-03-17T17:06:02.038Z","0.0.1":"2019-03-17T17:06:02.459Z","modified":"2022-04-04T13:51:54.341Z"},"maintainers":[{"name":"ampjs","email":"zhaomenghuan@agree.com.cn"}],"description":"集中式页面配置，自动生成各页面的入口文件，优化目录结构，支持新增页面热更新","homepage":"https://github.com/F-loat/mpvue-entry#readme","keywords":["mpvue","entry","webpack"],"author":{"name":"zhaomenghuan","email":"zhaomenghuan@agree.com.cn"},"license":"MIT","readme":"# mpvue-entry\n\n> 自动生成构建入口，避免编写大量重复的 main.js 文件，fork 自 mpvue-entry/2.0.0-rc.9.\n\n[![npm package](https://img.shields.io/npm/v/mpvue-entry.svg)](https://npmjs.org/package/mpvue-entry)\n[![npm downloads](https://img.shields.io/npm/dm/mpvue-entry.svg)](https://npmjs.org/package/mpvue-entry)\n[![build status](https://travis-ci.org/F-loat/mpvue-entry.svg?branch=master)](https://travis-ci.org/F-loat/mpvue-entry)\n[![codecov](https://codecov.io/gh/F-loat/mpvue-entry/branch/master/graph/badge.svg)](https://codecov.io/gh/F-loat/mpvue-entry/branch/master)\n[![codebeat badge](https://codebeat.co/badges/c51b57e4-c809-404e-a825-4271a8e2e01e)](https://codebeat.co/projects/github-com-f-loat-mpvue-entry-master)\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/F-loat/mpvue-entry/blob/master/LICENSE)\n\n## 目录结构\n\n``` txt\n├─build\n├─config\n├─src\n│ ├─components\n│ ├─pages\n│ │  └─news\n│ │     │─list.vue\n│ │     └─detail.vue\n│ ├─App.vue\n│ ├─app.json\n│ └─main.js\n└─package.json\n```\n\n## Quickstart\n\n> https://github.com/F-loat/mpvue-quickstart\n\n``` bash\nvue init F-loat/mpvue-quickstart my-project\n```\n\n## 安装\n\n``` bash\nnpm i mpvue-entry@next -D\n```\n\n## 使用\n\n> v2.0 版本仅支持 mpvue-loader@^1.1.0，兼容 megalo\n\n``` js\n// webpack.base.conf.js\nconst MpvueEntry = require('mpvue-entry')\n\nmodule.exports = {\n  entry: MpvueEntry.getEntry('src/app.json'),\n  ...\n  plugins: [\n    new MpvueEntry(),\n    ...\n  ]\n}\n```\n\n``` js\n// app.json - 支持 js 格式，兼容微信小程序官方配置规范\n{\n  \"pages\": [\n    {\n      \"path\": \"pages/news/list\", // 页面路径，同时是 vue 文件相对于 src 的路径，必填\n      \"config\": { // 页面配置，即 page.json 的内容，可选\n        \"navigationBarTitleText\": \"文章列表\",\n        \"enablePullDownRefresh\": true\n      }\n    }\n  ],\n  \"window\": {}\n}\n```\n\n## 参数\n\n* paths: `String/Object`\n\n> paths 为 `String` 类型时作为 config 的值，为绝对路径或相对于项目根目录的相对路径\n\n| property | default | describe |\n| :-: | :-: | :-: |\n| config | 'src/app.json' | 项目配置文件 |\n| main | 'src/main.js' | 主入口文件，作为模板 |\n| template | 'src/main.js' | 入口模板文件，优先级较高 |\n| entry | 'mpvue-entry/dist/' | 各页面入口文件目录 |\n\n``` js\n// 示例\nMpvueEntry.getEntry({\n  config: 'src/app.js',\n  main: 'src/index.js'\n})\n```\n\n* pages `[String/Object]`\n\n> pages 元素为 `String` 类型时作为 path 的值，为绝对路径或相对于项目根目录的相对路径\n\n| property | type | default | describe |\n| :-: | :-: | :-: | :-: |\n| path | String | - | 文件路径 |\n| config | Object | {} | 页面配置 |\n| route |String | - | 页面路由 |\n| native | Boolean | false | 原生页面 |\n| subPackage | Boolean | false | [分包加载](#quickstart) |\n| root | String | - | 分包根路径 |\n| name | String | `root` | 分包别名 |\n| independent | Boolean | false | 独立分包 |\n\n``` js\n// 示例\n[\n  'pages/index',\n  {\n    path: 'pages/news/list',\n    config: {\n      navigationBarTitleText: '页面标题'\n    },\n    route: 'pages/news/list/main'\n  },\n  {\n    path: 'package/news/detail',\n    root: 'package/news',\n    subPackage: true,\n    independent: true\n  }\n]\n```\n\n## Tips\n\n* 首页为 `pages` 数组的第一项\n\n* 分包配置兼容微信小程序官方写法\n\n* paths 的[相关配置](#参数)均可在项目 package.json 的 entryOptions 中覆盖\n\n* 可通过以下形式的注释指定 `main.js` 特有代码\n\n``` js\nconsole.log('hello world') // app-only\n\n/* app-only-begin */\nconsole.log('happy')\nconsole.log('coding')\n/* app-only-end */\n```\n\n* 官方模板生成的项目请务必去除以下配置\n\n``` js\n// webpack.base.conf.js\nmodule.exports = {\n  plugins: [\n    new CopyWebpackPlugin([{\n      from: '**/*.json',\n      to: ''\n    }], {\n      context: 'src/'\n    }),\n    ...\n  ]\n}\n```\n\n* megalo 官方已对打包入口做了类似的优化，如无迁移需求可直接采用[官方方案](https://github.com/kaola-fed/megalo-aot/pull/22)\n\n## Thanks\n\n* [webpack-watched-glob-entries-plugin](https://github.com/Milanzor/webpack-watched-glob-entries-plugin)\n","readmeFilename":"README.md"}