# dingdingphone **Repository Path**: mxshuai/dingdingphone ## Basic Information - **Project Name**: dingdingphone - **Description**: 钉钉审批H5手机版 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-26 - **Last Updated**: 2022-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## untitled --- An awesome project **如果你刚拿到这个项目,请先在项目目录下执行 `npm install`!** ## 项目相关链接 - PRD: - DEMO: ## 目录结构 ``` . ├── abc.json ------------------------- 项目构建配置文件 ├── favicon.ico ---------------------- 页面图标 ├── html ----------------------------- html目录 │ └── index.html ------------------- 入口页面 ├── package.json --------------------- 项目配置 ├── README.md ------------------------ 说明文件 └── src ------------------------------ 源码目录 ├── app -------------------------- 项目级代码 │   ├── app.js ------------------- 项目级脚本逻辑 │   ├── app.styl ----------------- 全局样式 ├── components ------------------- 业务模块集合目录 ├── images ----------------------- 图片资源目录 └── pages ------------------------ 页面集合目录    └── demo --------------------- 某一个页面       ├── index.js ------------- 页面入口文件       ├── actions.js ----------- 事件列表       ├── store.js ------------- 存储器       ├── PageDemo.js ---------- 页面视图逻辑       └── PageDemo.styl -------- 页面样式 ``` ## 环境准备 具体请参考[这里](http://nowa-webpack.github.io/docs/an_zhuang.html) 环境准备妥当之后,把项目clone下来,切换到对应分支。更新项目依赖: ``` npm install ``` 更新完成后即可开始开发。 ## 常用命令 - 启动调试服务器 ``` nowa server ``` > 上面的命令会开启一个本地调试服务器([http://localhost:3000/](http://localhost:3000/))。此时,项目`src`目录下的任何文件的变化,都会触发实时构建,并把变更同步到浏览器。 - 本地打包压缩 ``` nowa build ``` - 增加新模块 ``` nowa init mod ``` 生成好之后可以在页面中 require 进去使用。 - 增加新页面 ``` nowa init page ``` 生成好之后打开对应的页面即可访问。 - 查看所有可用命令 ``` nowa ``` - 更多命令和参数(端口、代理、依赖库、国际化、热构建、https……) 请查看 nowa 的官方文档: [http://nowa-webpack.github.io/docs/](http://nowa-webpack.github.io/docs/) ## 页面引用资源列表 项目在本地调试以及打包过程中会输出以下入口文件: - 如果存在 `app/app.js` 的话,则输出 `app.js`。 - 如果在 `app/app.js` 中引入了样式资源,则输出 `app.css`。 - 如果存在 `pages/page/index.js` 的话,则输出 `page.js`(此处 page 泛指 pages 目录下的任意目录名)。 - 如果在 `page.js` 中引入了样式资源,则输出 `page.css`。 对于一个页面,除了引入外部资源外,一般需要引入 `app.css`、`page.css`、`app.js`、`page.js` 这几个文件。 本地调试服务器并不会向文件系统写入任何文件,请求的资源只存在于内存中。 ## 构建变量和输出文件名后缀 `abc.json` 中提供了运行时变量和构建变量以供运行时和构建时进行变量注入。 ### 运行时变量(vars) 运行时变量的定义形如: ``` { "vars": { "locale": "zh-cn", "container": "nw", "__LOCAL__": true } } ``` > 这里定义的变量将以全局变量的形式,在 `nowa server` 时注入到代码中。 ### 构建变量(buildvars) 构建变量的定义形如: ``` { "buildvars": { "locale": [ "zh-cn", "en" ], "container": [ "dingding", "nw" ], "__LOCAL__": [ false ] } } ``` > 构建变量和运行时变量作用类似,但同一变量允许有多个候选值,构建器将根据不同的候选值对每个 js 生成不同后缀的文件。 > 例如,以上例子对于 app.js 将生成这些文件:app-zh-cn-dingding.js、app-zh-cn-nw.js、app-en-dingding.js、app-en-nw.js,每个文件中的 locale 和 container 变量分别对应到其后缀所指明的值。 > `buildvars` 会自动包含 `vars` 中的定义。 > 当某个变量仅有一个候选值时,将不会添加文件后缀。 ## CSS约定 具体请参考[这里](http://uxco.re/css/base/)。 ## 外部工具库 脚手架默认引入了以下外部工具库: | 类库 | 全局名称 | | ---- | ------ | | React | React | | ReactDOM | ReactDOM | | ReactRouter | ReactRouter | > [React](http://reactjs.cn/) 和 [Refulx](https://github.com/reflux/refluxjs) 的使用,请参考各自的官方文档。 ## SaltUI SaltUI 是钉钉微应用默认提供的 UI 库,基于 React 实现。访问 [SaltUI 官网](https://github.com/saltjs/salt-ui/blob/master/README.md)了解更多。 ## 项目中使用图标(或图片) ### 使用图标(svg) 我们推荐使用 svg 作为图标解决方案。 require svg 文件路径将直接返回包含这个 svg 的 react component。 ```js let Star = require('./star.svg'); ... render() { return ( ); } ``` ### 使用图片(png、jpg、jpeg、gif) 在 js 中 require(或在 css 中 url)一个相对路径的图片资源,将返回这个图片内容的 data-uri。 ```js let img = require('./img.png'); ... render() { return ( ); } ``` ```css .abc { background-image: url(./img.png); } ``` ## 数据层和模拟数据解决方案 - 请参考 [SaltFetch 官方文档](https://github.com/saltjs/salt-fetch)。 ## 其他 - 建议使用 [es6](http://es6.ruanyifeng.com/) 进行编码。