1 | # mip2 CLI [![npm package](https://img.shields.io/npm/v/mip2.svg)](https://www.npmjs.com/package/mip2) ![node](https://img.shields.io/node/v/mip2.svg)
|
2 |
|
3 |
|
4 | Command Line Interface for MIP 2.0.
|
5 |
|
6 | ## Installation
|
7 |
|
8 | Prerequisites: [Node.js](https://nodejs.org/en/) (>=8.x), npm version 3+ and [Git](https://git-scm.com/).
|
9 |
|
10 | ``` bash
|
11 | $ npm install -g mip2
|
12 | ```
|
13 |
|
14 | ## Usage
|
15 |
|
16 | 创建项目
|
17 |
|
18 | ``` bash
|
19 | $ mip2 init
|
20 | ```
|
21 |
|
22 | 新增一个组件
|
23 |
|
24 | 在项目根目录运行 `mip2 add` 命令,即可快速添加一个新组件
|
25 |
|
26 | ```bash
|
27 | # 快速添加名为 mip-new 的组件
|
28 | $ mip2 add mip-new
|
29 |
|
30 | # 使用 -f 或 --force 参数强制覆盖同名组件
|
31 | $ mip2 add mip-new -f
|
32 | ```
|
33 |
|
34 | 启动调试服务器,在项目根目录运行
|
35 |
|
36 | ``` bash
|
37 | $ mip2 dev
|
38 | ```
|
39 |
|
40 | Example:
|
41 |
|
42 | ``` bash
|
43 | # 可使用 ——port 指定端口
|
44 | $ mip2 dev --port 8888
|
45 | ```
|
46 |
|
47 | 组件和页面校验
|
48 |
|
49 | 集成到 cli 工具中的校验分为三种:
|
50 |
|
51 | - 组件校验
|
52 | - 页面校验
|
53 | - npm 白名单校验
|
54 |
|
55 | ``` bash
|
56 | $ mip2 validate
|
57 | ```
|
58 |
|
59 | Example:
|
60 |
|
61 | ``` bash
|
62 | # 组件校验
|
63 | $ mip2 validate components
|
64 | $ mip2 validate -c components
|
65 |
|
66 | # 页面校验
|
67 | $ mip2 validate -p page.html
|
68 |
|
69 | # npm 白名单校验
|
70 | $ mip2 validate -w path-to-project
|
71 | ```
|
72 |
|
73 | 构建组件,在项目根目录运行
|
74 |
|
75 | ``` bash
|
76 | $ mip2 build
|
77 | ```
|
78 |
|
79 | 生成 Service Worker
|
80 |
|
81 | mip2 CLI 提供了 `sw` 命令,帮助开发者更简单快速地生成 Service Worker,支持离线可用等特性。
|
82 |
|
83 | ``` bash
|
84 | # 在项目根目录运行
|
85 | $ mip2 sw
|
86 | ```
|
87 |
|
88 | 默认情况下,将导出 Service Worker 文件到 `dist/sw.js`,并对静态资源(如 js,css)及 html 文档进行缓存,实现页面的离线可用。
|
89 |
|
90 | `mip2 sw` 命令提供了选项:
|
91 |
|
92 | ``` javascript
|
93 | -o, --output // 指定 sw 导出路径,如 mip2 -o output/service-worker.js
|
94 | -c, --config // 指定配置文件路径,默认使用项目根目录 mip.config.js
|
95 | ```
|
96 |
|
97 | 除此之外,我们可以在 `mip.config.js` 中增加 `serviceWorker` 配置项,对 Service Worker 进行进一步的配置,如预缓存列表、动态缓存策略、`skipWaiting`、`clientsClaim` 等。
|
98 |
|
99 | ``` javascript
|
100 | module.exports = {
|
101 | dev: {/*...*/},
|
102 | serviceWorker: {
|
103 | cacheId: 'mipuser',
|
104 | skipWaiting: true,
|
105 | clientsClaim: true,
|
106 | runtimeCaching: [],
|
107 | globPatterns: [],
|
108 | globIgnores: []
|
109 | }
|
110 | }
|
111 | ```
|
112 |
|
113 | 更多的配置选项可以参考 [Workbox 配置项](https://developers.google.com/web/tools/workbox/modules/workbox-build#generateswstring_mode)
|
114 |
|
115 | ## 常用插件
|
116 |
|
117 | 本地启动 SF 调试环境
|
118 |
|
119 | ``` bash
|
120 | $ mip2 sf
|
121 | ```
|
122 |
|
123 | 运行命令后,会在本地启动一个服务器,可以通过 `http://localhost:8210/sf` 进行访问,对页面嵌入 SF 的情况进行调试和验证。
|
124 |
|
125 | 详情可以查看插件项目仓库 [mip-cli-plugin-sf](https://github.com/mipengine/mip-cli-plugin-sf)
|