0.1.1 • Published 5 years ago
@retailwe/cli v0.1.1
RetailWe CLI
介绍
retailwe-cli 提供了以下功能:
- 快速创建页面- 支持小程序分包
- 支持自动写入路由到 app.json
 
- 快速创建组件
- 自定义创建模板
安装
$ npm i -g @retailwe/clinew page
$ retailwe new page <name|path>快速创建页面,创建的页面包含以下四个文件:
- xxx/index.ts
- xxx/index.json
- xxx/index.less
- xxx/index.wxml
创建普通页面
$ retailwe new page abc
[retailwe] › ▶  start     创建页面:supermarket/pages/abc/index
[retailwe] › ✔  success   生成文件:src/supermarket/pages/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/pages/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/pages/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/pages/abc/index.wxml
[retailwe] › ✔  success   自动写入路由到:app.json
[retailwe] › ☒  complete  创建页面完成
$ retailwe new page groupA/abc
[retailwe] › ▶  start     创建页面:supermarket/pages/groupA/abc/index
[retailwe] › ✔  success   生成文件:src/supermarket/pages/groupA/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/pages/groupA/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/pages/groupA/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/pages/groupA/abc/index.wxml
[retailwe] › ✔  success   自动写入路由到:app.json
[retailwe] › ☒  complete  创建页面完成创建分包页面;--sp | --subpkg
$ retailwe new page abc --sp moduleA
[retailwe] › ▶  start     创建页面:supermarket/pages/moduleA/abc/index
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/abc/index.wxml
[retailwe] › ✔  success   自动写入路由到:app.json
[retailwe] › ☒  complete  创建页面完成
$ retailwe new page groupA/abc --sp moduleA
[retailwe] › ▶  start     创建页面:supermarket/pages/moduleA/groupA/abc/index
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/groupA/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/groupA/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/groupA/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/groupA/abc/index.wxml
[retailwe] › ✔  success   自动写入路由到:app.json
[retailwe] › ☒  complete  创建页面完成自定义目录:--dir
定义页面的落地目录,最后输出目录 = ${appDir}/${dir};
其中 appDir 在 .retailwerc 定义。
$ retailwe new page abc --dir new-supermarket/pages
[retailwe] › ▶  start     创建页面:new-supermarket/pages/abc/index
[retailwe] › ✔  success   生成文件:src/new-supermarket/pages/abc/index.json
[retailwe] › ✔  success   生成文件:src/new-supermarket/pages/abc/index.less
[retailwe] › ✔  success   生成文件:src/new-supermarket/pages/abc/index.ts
[retailwe] › ✔  success   生成文件:src/new-supermarket/pages/abc/index.wxml
[retailwe] › ✔  success   自动写入路由到:app.json
[retailwe] › ☒  complete  创建页面完成new component
$ retailwe new component <name|path>快速创建组件,创建的组件包含以下四个文件:
- xxx/index.ts
- xxx/index.json
- xxx/index.less
- xxx/index.wxml
快速创建组件
$ retailwe new component abc
[retailwe] › ▶  start     创建组件:abc
[retailwe] › ✔  success   生成文件:src/supermarket/components/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/components/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/components/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/components/abc/index.wxml
[retailwe] › ☒  complete  创建组件完成
$ retailwe new component groupA/abc
[retailwe] › ▶  start     创建组件:abc
[retailwe] › ✔  success   生成文件:src/supermarket/components/groupA/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/components/groupA/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/components/groupA/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/components/groupA/abc/index.wxml
[retailwe] › ☒  complete  创建组件完成自定义目录: --dir
$ retailwe new component groupA/abc --dir supermarket/pages/moduleA/components
[retailwe] › ▶  start     创建组件:abc
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/components/groupA/abc/index.json
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/components/groupA/abc/index.less
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/components/groupA/abc/index.ts
[retailwe] › ✔  success   生成文件:src/supermarket/pages/moduleA/components/groupA/abc/index.wxml
[retailwe] › ☒  complete  创建组件完成.retailwerc
当运行 $ retailwe 的时候,会在命令运行的当前文件夹向上回溯寻找 rc 文件,直到系统的根目录为止。
{
  // 给 retailwe new 命令,指定自定义模板
  "templates": {
    // new component
    "component": {
      // 模板文件所在的目录
      "source": ".templates/component",
      // 新文件输出的默认目录
      "defaultOutput": "src/components"
    },
    // new page
    "page": {
      // 模板文件虽在的目录
      "source": ".templates/page",
      // 新文件输出的默认目录
      "defaultOutput": "src/pages"
    }
  },
  // 项目构建输出的目标目录
  "distDir": "dist",
  // 项目源码目录
  "appDir": "src",
  // 在页面创建之后是否自动写入路由
  "writeRouteAfterCreated": true
}自定义模板:templates
支持自定义模块的命令:
- new page
- new component
通过修改 .retailwerc:
"templates": {
    // new component
    "component": {
      // 模板文件所在的目录
      "source": ".templates/component",
      // 新文件输出的默认目录
      "defaultOutput": "src/components"
    },
    // new page
    "page": {
      // 模板文件虽在的目录
      "source": ".templates/page",
      // 新文件输出的默认目录
      "defaultOutput": "src/pages"
    }
  },支持后缀名的文件:json|wxml|js|wxss|scss|less|md|ts
模板参数
不同的模板,分别会注入不同的参数,方便满足特定需求,如以下模板:
import MyPage from "<%= relativeToAppDir %>/libs/my-page";
MyPage({
  onLoad() {
    console.log("on page load");
  },
});其中 relativeToAppDir 就是文件路径相对于应用目录的相对路径距离。
不同模板注入的参数有差异化,如下:
page
| 变量名 | 说明 | 
|---|---|
| name | 页面名称,如 /pages/homepage/index.xxx的页面名为homepage | 
| route | 相对于应用的路径,如: /pages/homepage/index | 
| relativeToAppDir | 当前文件相对于应用目录的相对路径距离 | 
component
| 变量名 | 说明 | 
|---|---|
| name | 插件,如 /components/dailog/index.xxx的  插件名为dailog | 
| relativeToAppDir | 当前文件相对于应用目录的相对路径距离 | 
License
This project is licensed under the MIT license.
Copyright (c) JerryC Huang (huangjerryc@gmail.com)
0.1.1
5 years ago
0.1.0
5 years ago
0.0.2
5 years ago
0.0.9
6 years ago
0.0.7-alpha.0
6 years ago
0.0.3-alpha.0
6 years ago