针对移动端的前端工作流

   

         在移动端项目的开发中,我们会遇到诸如移动端技术选型、移动端适配、预处理器语言的使用规范和编译、各种繁琐的工作(压缩、合并、内联、雪碧图、CSS前缀……)等问题,在一遍又一遍的重复劳动中,我们需要一个能够结合最佳实践的项目初始文件,本套工作流就是以这个目的进行构建,旨在提高移动端项目开发效率。

         这套工作流与其叫工作流这么高大上的名字,我更愿意叫它基础库。如它的名字一样,它就是用来作为项目的基础,在良好的基础上开发的项目,才像是站在巨人的肩膀上,才能保证项目的质量与效率。

         此外因为是针对移动端(尤其是活动类项目)开发的基础库,技术选型还算简单,尤其适合初入移动端以及刚做移动端不久的前端人,即使做了一段时间的移动端,了解这套基础库的架构和功能实现,或许也有增益。

接下来让我们来了解这个基础库的各个方面。

     

基础库技术选型

在正式去了解这套基础库前,首先介绍它的技术选型,让你有个大概的了解。

  • zepto.js + deferred.js + callbacks.js + touch.js(库)
  • flexible.js(移动端rem适配方案)
  • handlebars(模板引擎)
  • gulp(自动化构建工具)
  • sass(预处理器语言)

基础库实现的功能

看完技术选型后,看看它能实现哪些功能,是否满足你的需求。

  1. Sass编译
  2. Css Js 图片压缩
  3. Css Js 合并
  4. Css Js 内联
  5. Html的include功能
  6. Autoprefixer
  7. 自动刷新
  8. 去缓存
  9. 提供Handlebars模板文件的预编译
  10. 提供常用功能函数
  11. 雪碧图
  12. ESLint
  13. rem移动端适配方案
  14. 内置样式与WeUI样式相同的loading、dialog组件

基础库的环境安装

OK, 如果你决定尝试下这套基础库,首先要确保你有相应的环境,下面这些是步骤:

1.下载nodejs,安装

2.安装cnpm,实际上你只用在终端执行下面这句命令就可以了。

    npm install -g cnpm --registry=https://registry.npm.taobao.org

3.安装gulp,同样你需要执行下面这句命令。

    cnpm install --global gulp

基础库代码获取

安装完环境,我们需要获取代码,获取代码有两种方式:

1.github

    git clone git@github.com:mqyqingfeng/lnv-mobile-base.git

2.yeoman

    cnpm install -g yo

    cnpm install -g generator-lnv-mobile

    yo lnv-mobile

效果如图:


yeoman.png

输入项目名称,会以输入的项目名称建立文件夹,基础库的代码会自动创建。

基础库运行

获取文件后,进入文件根目录,请记住,在全部的使用中,就俩命令:

1.开发时使用:

    gulp

当你开启gulp命令后,不要关闭终端,gulp会监控src目录下的变化,根据文件的不同进行对应的操作。

2.最终构建:

    gulp build

当你执行gulp build命令后,会自动压缩、合并、内联、去缓存,这是最终的上线版本。

基础库目录结构

在介绍基础库的各个功能之前,首先了解一下目录结构。

src下:

├── src/                        # 源文件
    └── font                      # 字体文件
    └── img                       # 图片
    └── include                    # include文件 └── js # js └── scss # scss └── static # 静态资源 └── tpl # handlebars模板 └── widget # 组件 └── index.html # index.html

执行gulp命令后, 会生成dev目录

├── dev/                        # dev目录
    └── font                       # 字体文件目录
    └── img                       # 图片目录
    └── js                        # js
    └── css                        # css目录 └── static # 静态资源目录 └── tpl # handlebars模板目录 └── widget # 组件目录 └── index.html # index.html

执行gulp build命令后, 会生成build目录

├── build/                      # 构建目录
    └── combined                   # 合并后的文件目录
    └── img                       # 图片目录
    └── js                        # js
    └── css                        # css目录 └── static # 静态资源目录 └── widget # 组件目录 └── index.html # index.html

注意dev目录是通过src目录生成的,任何时候都不要直接更改dev目录里的内容!!!

build目录是最终构架出的目录,是最终要在线上使用的版本。

注意node_modules文件夹是不提交的!!!

 

本文转至简述app

转载于:https://www.cnblogs.com/Rzyy/p/7050428.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
grunt-workflow 是一个帮助前端开发工程师简化工作的工具,它的主要功能是: webserver livereload,能保存文件的时,自动刷新浏览器. 自动编译sass 压缩图片 合并图片 添加文件注释 自动补全css3浏览器前缀 初始化项目目录结构及文件 支持ejs模板 安装相关软件 安装 nodejs window 安装地址 , mac 推荐通过brew安装brew install node 安装 grunt-cli npm install -g grunt-cli 安装 grunt-init npm install -g grunt-init 将当前git克隆到本地%USERPROFILE%\.grunt-init\(Mac平台 ~/.grunt-init/),如果没有.grunt-init目录可用mkdir .grunt-init命令创建 安装 Graphics Magick(gm),下载地址 (Mac平台 brew install GraphicsMagick) 安装 PhantomJS,下载地址 (Mac平台 brew install phantomjs) 安装 sass gem install sass 初始化新项目 在项目目录下执行 grunt-init lego (注意:项目目录要为空文件夹,不然会报错) 根据提示填写相关的内容 执行 npm install 命令下载安装相关依赖 快速在当前文件夹打开命令行 win7:首先按住Shift键,然后选择某文件夹后或在某文件夹中的空白处右键单击,快捷菜单中会多出“在此处打开命令窗口”,选择这个选项即可 Mac:安装 gotoshell 建立软链接 使用下面命令能避免每次在新项目开始前都要使用 npm install 下载相关的grunt插件 window: - mklink /d .\node_modules C:\Users\Administrator\Desktop\grunt_plugins\node_modules mac:ln -s ~/Documents/grunt_plugins/node_modules ./node_modules (~/Documents/grunt_plugins/node_modules) 目录是存放grunt插件的文件夹 项目目录结构 └── src     ├── _index.html     ├── css     │   └── lib     ├── img     ├── js     │   └── lib     ├── sass     ├── partial     ├── data     └── slice html页面存放在src文件夹,支持ejs模板(见5)。 css存放在 src/css 文件夹,第三方的样式库放在 src/css/lib js存放在 src/js 文件夹,第三方的样式库放在 src/js/lib src/slice 文件夹放需要合并的图片;若需要多张雪碧图,则自建子文件夹,一个子文件夹对应一张雪碧图,子文件名为雪碧图名(注意,需要替换雪碧图的css文件,切片使用background-image属性来引入,不使用background属性引入。) ejs模板片段放在src/partial文件夹,模板数据放在src/data文件夹。配置数据统一在src/data/config.json指定(注意:没有配置的html页面不参与ejs渲染)。 注意:src/css/lib 和 src/js/lib 里的文件是不会被压缩的。 任务 项目安装好了相关的配置就可以在命令行下使用grunt任务 grunt 默认打开一个webserver,查看的文件是在开发目录下,支持livereload,sass自动编译,ejs编译 grunt port:端口号 指定端口打开一个webserver,查看的文件是在开发目录下,支持livereload,sass自动编译,ejs编译 grunt release 生成发布文件,执行gunt release生成一个dest的目录,检测样式文件里的本地资源引用,如果有无效引用则中断任务,否则执行后续任务:编译html,压缩css、js文件,自动生成sprit图片,替换css样式里的链接。dest里的文件是发布使用的。 grunt dest 打开一个webserver,显示dest目录 grunt assets:提交注释 提交dest里面的静态文件(css、js、img)到静态文件服务器,提交路径为%SVN_REMOTE_DIR%/<description>/<name>/<version>,详见注意事项。 grunt zip 打包src和dest文件给技术。其中dest文件夹作如下处理:将 dest/*.html 的 相对路径的静态资源 引用替换为线上路径;若不需替换,资源路径换成 绝对路径 。 该命令在grunt release后执行,线上路径由 包描述文件(见注意事项) 指定。dest里的静态资源可通过grunt assets或手动上传到assets服务器。 可选配置 配置文件: ~/.grunt-init/config.json IS_EXEC_CUSTOM_CMD 是否启用初始化时执行默认命令,默认不启动。 LINK_SRC_NODE_MODULES 建立node_modules软链接的源路径。(建议mac用户指定到~/.node_modules, win用户指定到%USERPROFILE%\.node_modules) OPEN_APP 初始化目录后启动APP打开当前项目。 注意事项 提交到 svn-work 时(需手动提交),只上传配置文件 Gruntfile.js 、 package.json 和源码文件夹 src/ 即可 提交到 svn-assets 时,需说明:svn-assets提交路径为%SVN_REMOTE_DIR%/<description>/<name>/<version>,对应线上路径为 http://assets.dwstatic.com/<description>/<name>/<version> description,项目类型,取值:project、game、special name,项目名,不要出现中文字符 version,项目版本,默认值:1.0.0 修改模板文件~/.grunt-init/lego/root/Gruntfile.js里面push_svn任务的用户信息 在grunt-init lego时注意以下字段的填写,或者在初始化后的 package.json 中修改对应字段 标签:grunt

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值