@bytedance/mona
Advanced tools
Comparing version 0.0.3 to 0.0.4
{ | ||
"name": "@bytedance/mona", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Merchant app's developing and building tools", | ||
@@ -17,3 +17,3 @@ "main": "./dist/index", | ||
"@bytedance/mona-plugin-events": "^0.0.3", | ||
"@bytedance/mona-runtime": "^0.0.3" | ||
"@bytedance/mona-runtime": "^0.0.4" | ||
}, | ||
@@ -24,3 +24,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "97ed421fa8c36906c53d7fda2cce8566b94acc2f" | ||
"gitHead": "d89e169d306e1fef4a0bb7241abc7909c1019aec" | ||
} |
182
README.md
@@ -1,117 +0,105 @@ | ||
# mona-cli | ||
## 介绍 | ||
mona-cli是电商商家应用的CLI工具,主要为了能够提升商家应用在各端运行效率,对齐开发规范,统一开放方案,保证开放安全。 | ||
## 快速开始 | ||
### 安装CLI | ||
快速开始开发一个商家应用/商家应用插件需要先安装该CLI工具,使用如下命令进行安装 | ||
```bash | ||
npm install -g @ecom/mona-cli | ||
// 或使用yarn安装,任选其一 | ||
yarn global add @ecom/mona-cli | ||
``` | ||
# mona | ||
对外暴露mona组件以及API | ||
安装完成后,控制台输入 | ||
```bash | ||
mona -v | ||
``` | ||
能正确打印出版本,则表明安装成功 | ||
## 组件 | ||
### Link | ||
跳转组件,支持插件/应用间页面跳转 | ||
### 初始化项目 | ||
下面我们来初始化一个项目,使用如下命令 | ||
```bash | ||
mona init | ||
``` | ||
#### 例子 | ||
按照提示依次输入项目名称,选择模板,选择是否使用typescript和样式预处理器 | ||
注意:模板目前仅支持PC和Plugin(pc适用于web应用和桌面端应用的开发) | ||
```jsx | ||
import { Link } from '@bytedance/mona'; | ||
### 开发 | ||
项目初始化完成后可以进行开发,使用如下命令启动开发服务器,可以实时调试 | ||
```bash | ||
mona start | ||
``` | ||
const Index = () => { | ||
return ( | ||
<div> | ||
<Link to="/pages/home/index">navigate to home </Link> | ||
</div> | ||
) | ||
} | ||
### 打包 | ||
开发完成后,对项目进行打包,可以使用如下命令 | ||
export default Index; | ||
``` | ||
mona build | ||
``` | ||
#### 参数说明 | ||
### 发布 | ||
web发布按照旧有流程发布 | ||
桌面端发布需要通过gecko进行发布 | ||
插件发布需要通过mona publish命令进行发布 | ||
| 参数 | 说明 | 是否必填 | 类型 | 默认值 | | ||
| ---- | ---- | ---- | ---- | ---- | | ||
| to | 要跳转的页面路由 | 是 | string | - | | ||
## 配置 | ||
默认配置文件为项目根目录下的`mona.config.js`,配置文件内容如下: | ||
## API | ||
### navigateTo | ||
路由跳转,跳转到新的页面 | ||
#### 例子 | ||
```js | ||
import { createMonaConfig } from '@ecom/mona-webpack' | ||
import { navigateTo } from '@bytedance/mona'; | ||
// 修改CDN | ||
const CDN = '/'; | ||
export default createMonaConfig({ | ||
projectTarget: ['web'], | ||
projectName: 'mona-demo', | ||
input: './src/app', | ||
dest: 'build', | ||
output: { | ||
publicPath() { | ||
return process.env.NODE_ENV === 'production' ? `${CDN}` : '/'; | ||
}, | ||
}, | ||
abilities: { | ||
react: { | ||
hot: true, | ||
}, | ||
ts: true, | ||
less: true, | ||
}, | ||
raw(options) { | ||
return options; | ||
}, | ||
dev: { | ||
devServer: { | ||
historyApiFallback: true, | ||
}, | ||
}, | ||
}); | ||
navigateTo('/pages/home/index') | ||
``` | ||
该配置与是Eden配置文件的扩展,增加了`projectTarget`和`projectName`两个字段。 | ||
### projectTarget | ||
指定打包端,有效值如下:`desktop/web/miniapp/plugin`。可以接受一个字符串或者字符串数组作为值。非有效值直接忽略。 | ||
- 模板`pc`默认值:`['web','desktop']` | ||
- 模板`mobile`默认值:`['miniapp']` | ||
- 模板`plugin`默认值:`['plugin']` | ||
- 模板`monorepo`:各个仓库值如上所示 | ||
### redirectTo | ||
路由重定向,跳转并替换当前页面路由 | ||
### projectName | ||
即应用名称或插件名称,如果选择了monorepo则各项目的命名如下,一期先不做 | ||
- pc:[name]-pc | ||
- mobile: [name]-mobile | ||
- plugin: [name]-plugin | ||
#### 例子 | ||
```js | ||
import { redirectTo } from '@bytedance/mona'; | ||
## 命令 | ||
可以使用`mona -h`查看帮助命令,`mona -v`查看当前版本 | ||
redirectTo('/pages/home/index') | ||
``` | ||
### mona init | ||
初始化一个商家应用/商家应用插件项目 | ||
## 其他 | ||
### createProjectConfig | ||
创建项目配置,`mona.config.ts`中使用 | ||
#### 例子 | ||
```js | ||
// mona.config.ts | ||
import { createProjectConfig } from '@bytedance/mona'; | ||
export default createProjectConfig({ | ||
projectName: 'demo', | ||
input: './src/app.tsx', | ||
output: 'dist' | ||
}) | ||
``` | ||
### mona start | ||
启动开发模式服务器 | ||
#### 参数说明 | ||
| 参数 | 说明 | 是否必填 | 类型 | 默认值 | | ||
| ---- | ---- | ---- | ---- | ---- | | ||
| projectName | 应用/插件名称 | 是 | string | - | | ||
| input | 入口文件路径 | 是 | string | - | | ||
| output | 打包后的文件目录路径 | 否 | string | - | | ||
### mona build | ||
对项目进行打包 | ||
### createAppConfig | ||
创建应用配置,`app.config.ts`中使用 | ||
#### 例子 | ||
```js | ||
// app.config.ts | ||
import { createAppConfig } from '@bytedance/mona'; | ||
export default createAppConfig({ | ||
pages: [ | ||
'pages/Home/index', | ||
'pages/Info/index', | ||
'pages/List/index' | ||
] | ||
}) | ||
``` | ||
#### 参数说明 | ||
| 参数 | 说明 | 是否必填 | 类型 | 默认值 | | ||
| ---- | ---- | ---- | ---- | ---- | | ||
| pages | 页面路径 | 是 | string[] | - | | ||
### mona lint | ||
对项目进行代码格式化 | ||
### mona proxy | ||
打开代理服务器 | ||
### createPageConfig | ||
创建页面配置,需在每个页面目录的`page.config.ts`中使用 | ||
### mona publish | ||
发布插件 | ||
### mona update | ||
更新CLI命令 | ||
#### 例子 | ||
```js | ||
// page.config.ts | ||
import { createPageConfig } from '@bytedance/mona'; | ||
export default createPageConfig({ | ||
navigationBarTitleText: 'page title' | ||
}) | ||
``` | ||
#### 参数说明 | ||
| 参数 | 说明 | 是否必填 | 类型 | 默认值 | | ||
| ---- | ---- | ---- | ---- | ---- | | ||
| navigationBarTitleText | 当前页面标题 | 否 | string | - | |
3955
106
+ Added@bytedance/mona-runtime@0.0.4(transitive)
- Removed@bytedance/mona-runtime@0.0.3(transitive)