前后端分离开发脚手架

上篇文章写完后,有一些同学反应有些东西没有说清楚,所以我决定抽点时间把这个工具写的详细一点

描述

这是一个是针对于页面比较繁多的非单页面应用的官网开发脚手架。打包工具使用的是gulp,还用到了require引入资源的方式,样式编写时用的less,页面的模板和后台的交互显示是使用的art-template(下面有详细描述这个插件)
项目地址

如何使用

  1. 下载项目

    $ git clone git@github.com:HuYuee/web-starter-kit.git
    
  2. 安装依赖

    $ cd web-starter-kit && npm install
    
  3. 启动页面,访问http://localhost:3333/src/html/index.html

    $ npm run start
    
  4. 产出最终工程

    $ npm run build
    

目录结构

  • bin
    • render.js——(在gulpfile文件中使用到)解析layout中的模板html,将完整的html产出到src/html中
  • dist——产出目录(在项目下运行npm run build就可以将src下相关资源产出到该目录)
  • src——开发目录(只需在该目录下开发即可)
    • conf——配置文件目录
    • css——由less文件生成的的css文件
    • data——mock数据文件夹
    • html——由layout中的html文件解析出来的最终html文件
    • images——图片文件夹
    • js——js文件夹(js相关在此文件夹中开发
    • layout——html的源文件夹(html在该文件夹中开发
    • less——less文件夹(样式相关的在该文件夹中开发
    • vendor——第三方库
    • widget——公用的layout中使用的模板(模板在该文件夹中开发

如何新建页面

  1. 新建html

    src/layout文件夹中新建page1.html,在代码可以引入部门公用html模板,也可以写自己定制的代码。这里需要明确的说一点:在html中的底部会加入require引入,这里必须要写入页面在require中对应的配置名称,比如下面的page1。如果只是测试可以拷入以下代码:

    <!DOCTYPE html>
    <html>
    <head>
        <!-- ws: 引入公共样式 -->
        {{{include '../widget/public_style'}}}
        <!-- we: 引入公共样式 -->
    </head>
    <body style="visibility:hidden;">
        <h1>这里是page1的内容</h1>
        <a href="index.html">点击回首页</a>
        <!--ws: 公共Script -->
        {{{include '../widget/public_script'}}}
        <!--we: 公共Script -->
        <script>
        //通过require的方式来引入需要的js
          require( ['page1'], function() {
          });
        </script>
    </body>
    </html>
    
  2. 新建样式文件

    src/less/page文件夹中新建page1.less,在代码中可以引入公共的less模板,也可以自己写。如果是测试可以拷入以下代码:

    // 引入基本样式
    @import '../widget/common.less';
    
        h1 {
            font-size: 25px;
        }
    
  3. 新建js文件

    src/js文件夹下新建page1文件夹,然后在page1文件夹下新建文件page1.js。里面可以通过require语法引入其他js。可以拷入以下代码进行测试:

    define(["jquery", "data", "template"], function($, d, template) {
        $("body").css("visibility", "visible");
    
    });
    
  4. 配置require

    src/conf/require.config.js中配置新加入的js和css,如下图所示:

image.png
  1. 当然如果你再别的方面还需要进行增加或者修改可以到相应的目录下去修改,比如图片在images中修改,第三方插件在vendor中加入。

  2. 最后你可以访问[http://localhost:3334/src/html/page1.html

使用到的技术

  • require:实现模块化开发
  • mock:实现本地模拟服务器端返回数据
  • browsersync:启动本地浏览页面,并实现当源码更改时页面实时刷新
  • art-template:使用到了html模块化封装,还有js模板
  • gulp-autoprefixer:使用gulp-autoprefixer根据设置浏览器版本自动处理浏览器前缀
  • 图片压缩,less转css,css和js压缩,css生成sourcemap
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 10,829评论 1 32
  • Webpack学习总结 此文只是自己学习webpack的一些总结,方便自己查阅,阅读不变,非常抱歉!! 下载安装:...
    Lxs_597阅读 4,590评论 0 0
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,333评论 7 110
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    依依玖玥阅读 8,381评论 7 55
  • 1、打开iTunes,并与手机相连接; 2、按照下图,搜索想找的App,并下载: 3、根据这个路径:/Users/...
    zhuJ_LRY阅读 4,494评论 0 1