# requirejs-tools-mobile **Repository Path**: xiaoheFE/requirejs-tools-mobile ## Basic Information - **Project Name**: requirejs-tools-mobile - **Description**: 基于requirejs-移动端模块化解决方案 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-04-22 - **Last Updated**: 2023-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于requirejs-移动端模块化解决方案 ## 主要技术栈 + Zepto : 不解释 + require : AMD模块化工具,项目的主要构件。源文件目录src/js,生成目录dist/。 + Less : CSS预编译语言。源文件目录src/less,生成目录dist/css。 + Mock : 解决方案有2种: 1. 基于mock.js假数据的解决方案。用于模拟数据接口格式即假数据,文件位置src/js/mock。(用于接口不存在的情况) 2. 接口反向代理(用于接口存在的情况) + artTemplate : HTML模板引擎。源文件目录src/template,生成目录dist/。 ## 主要插件 + layer-mobile 页面弹窗 文档地址:http://layer.layui.com/mobile/ + echarts 数据图表 文档地址:http://echarts.baidu.com/ + TouchSlide.1.1 轮播图,tab选项卡 文档地址:http://www.superslide2.com/TouchSlide/ + wheelpicker 筛选组件 文档地址:http://cople.github.io/WheelPicker/ + iscroll 滑动加载(不再建议使用,建议使用betterscroll,后续会替换掉) + photoswipe 相册 文档地址:http://photoswipe.com/ ## 命令 ``` npm install // 安装gulp及插件 + 建议安装cnpm,下载node包速度会快一些,下面是安装指令 // mac安装需要sudo权限 + npm install -g cnpm --registry=https://registry.npm.taobao.org npm run dev // 启动开发版本,不压缩,启用css map npm run pro // 启动生产版本,压缩图片和js,不启用css map npm run build // 启动生产版本,压缩图片和js,不启用css map,不启动本地sever npm run clean // 删除dist文件夹(需在gulp do之前执行) npm run sftp // 将 dist/** 上传至sftp(上传至本地研发服务器) ``` ## 基于gulp架构,详见package.json **注意:如要使用ES6/ES7/ES8,babel-preset-env可以转为ES5,IE8以下版本无法支持。** + babel-core : babel内核,用于支持babel-preset-env。 + babel-preset-env : babel-preset-es2015已经停用,唯一的babel插件。 + browser-sync : http环境。 + gulp-babel : babel基于gulp的插件,需要和babel-preset-env一同使用。 + gulp-changed : 只编译改变的文件。 + gulp-clean : 删除文件及文件夹。 + gulp-file-include : 使html有Include的功能。 + gulp-htmlmin : html代码压缩。 + gulp-if : 条件语句。 + gulp-imagemin : 图片压缩。 + gulp-less : less编译。 + less-plugin-autoprefix : css3补全前缀。 + gulp-plumber : 防止产生错误终止gulp。 + gulp-sequence : task同步队列。 + gulp-sftp : sftp上传。 + gulp-sourcemaps : css map。 + gulp-uglify : js压缩。 + gulp-strip-debug : 移除js压缩信息。 + gulp-watch : 检测。 + minimist : 处理node参数。 ## 基于Node.js ### 项目版本相关配置: 配置文件位置:**/src/projectConfig.json** - **version**包括前端版本控制(用于清除缓存便于测试) - **svnVersion**版本控制(生产环境真实版本-与version保持一致即可) - **title**项目名称(用于页面title和gulp提示) - **sftpProjectConfig**sftp相关配置 ``` { "version" : "1.0.0", "svnVersion" : "1.0.0", "title" : "机构专属家长App", "sftpProjectConfig" : { "host" : "192.168.1.10", "port" : "22", "user" : "xiaohe", "pass" : "Wfzf6&uoxGwzcpvA4+eRgiuMbH6oZv^P^C", "remotePath" : "/home/xiaohe/www/app/business.xiaohe.com.cn/bin/webroot/dist/" } } ``` ### 接口反向代理: 配置文件位置:**/src/mockRouteConfig.json** 用于实现反向代理,利于前后端分离,进行本地开发: 1. **path**为代理别名即ajax.url = "/api/vote" 2. **to**为被代理地址 3. http开头为跨域地址,/开头为本地地址。 ``` { "routes": [ { "path": "/api/vote", "to": "http://www.baonahao.com/Ajaxs/getCategoryNameAndCourseNum", "commons": "接口信息备注" }, { "path": "/api/getUserInfo", "to": "/mock/post1.json", "commons": "接口信息备注" } ] } ``` ## 目录结构
requirejs-tools-mobile
│ .babelrc
│ .gitignore
│ deploy.sh
│ gulpfile.babel.js
│ package.json
│ README.md
│ tree.txt
│ YanagouJSBridge.js.txt
│
├─gulp
│ agent_module.js
│ clean_module.js
│ create_version.js
│ css_module.js
│ getProjectConfig.js
│ html_module.js
│ image_module.js
│ js_module.js
│ options_module.js
│ rev_module.js
│ server_module.js
│ sftp_module.js
│ toProxy.js
│ watch_module.js
│
└─src
│ index.html
│ mockRouteConfig.json
│ projectConfig.json
│
├─agent
│ │ agent_test.html
│ │ Conf.php
│ │ index.php
│ │ RequestApi.php
│ │ Sign.php
│ │ VerificationCode.php
│ │
│ └─tmp
│ 66411763d7484b502ad25cd16a3203b3.png
│
├─img
│ └─slidebox
│ dotte.png
│ dotte_on.png
│ round01.jpg
│
├─include
│ │ header-common.html
│ │
│ └─layout
├─js
│ │ config.js
│ │ init.js
│ │
│ ├─config
│ │ path.js
│ │
│ ├─page-DemoShow
│ │ entry-layer.js
│ │ entry-webviewBridge.js
│ │ entry-zeptoAnimate.js
│ │
│ ├─page-Index
│ │ entry-index.js
│ │
│ └─public
│ ├─business
│ │ backEndStatusCode.js
│ │ headAndFoot.js
│ │ layerFz.js
│ │ location.js
│ │
│ ├─layout
│ ├─service
│ └─tools
│ ajax.js
│ artTempFun.js
│ bridgeScript.js
│ loadStyle.js
│ method.js
│ PhotoSwipe.js
│ scrollLoad.js
│
├─less
│ │ normalize.less
│ │ public.less
│ │
│ ├─component
│ │ layer-default.less
│ │ layout.less
│ │ slidebox.less
│ │
│ ├─page-DemoShow
│ │ entry-layer.less
│ │ entry-webviewBridge.less
│ │ entry-zeptoAnimate.less
│ │
│ ├─page-Index
│ │ entry-index.less
│ │
│ └─variable
│ variable.less
│
├─lib
│ ├─css
│ │ animate.min.css
│ │ wheelpicker.min.css
│ │
│ └─js
│ │ css.min.js
│ │ decimal.js
│ │ echarts.min.js
│ │ layer-mobile.js
│ │ mock-min.js
│ │ require.js
│ │ template-web.js
│ │ text.js
│ │ TouchSlide.1.1.js
│ │ wheelpicker.min.js
│ │ zepto-1.2.0.min.js
│ │
│ ├─iscroll
│ │ │ iscroll-probe.js
│ │ │ iscroll.css
│ │ │ iscroll.js
│ │ │
│ │ └─img
│ │ icon_pull.png
│ │ load_page.gif
│ │
│ ├─layer-mobile
│ │ layer-default.css
│ │ layer-mobile.js
│ │
│ └─photoswipe
│ │ photoswipe-ui-default.min.js
│ │ photoswipe.css
│ │ photoswipe.min.js
│ │
│ └─default-skin
│ default-skin.css
│ default-skin.png
│ default-skin.svg
│ preloader.gif
│
├─mock
│ └─DemoShow
├─template
└─view
│ index.html
│
└─DemoShow
demo-webview.html
layer.html
webviewBridge.html
zeptoAnimate.html
## 代理接口调用(php接口代理层,用于解决跨域问题)
1. 示例地址:https://doc.oschina.net/jigou-web2.0
2. 密码:xiaohe.com
## 接口文档
文档地址:xxx
## css3兼容性速查
http://caniuse.com/#search=%3A%3Aafter