【前言】

假设你之前用过前端模块化工具:seajs。requirejs。

用过前端构建工具grunt、gulp,

而且感到了一些不方便和痛苦,那么你能够试试coolie

【coolie】

本文不是一篇介绍coolie的文章。而是偏向新手上手coolie的常见问题解答,

coolie相关:

社区文章:http://frontenddev.org/column/introduce-coolie/

git-book:http://coolie.ydr.me/index.html

【知识储备】

假设你没实用过前端模块化。没实用过前端构建,没有听过nodejs,

还请先百度google之,当初步了解以上内容。使用过一段时间在看这篇文章,

在使用coolie。你会发现coolie的长处所在。

【声明】

关于js模块化,前端构建的内容,使用的时间比較久,版本号比較旧,

仅仅是凭记忆说说。不是非常准确,可能如今这些工具已经非常完好了。

【能够做什么-模块化】

老生长谈的问题。请自行百度之,

简单的来说就是管理各个js,模块化的使用js。类似java中的import+jar。

能够看看这篇文章:http://uikoo9.com/blog/detail/java-vs-nodejs-reactjs-angularjs-requirejs-seajs

【能够做什么-构建】

假设你常常改动js,css,恰巧你们服务端会做缓存。

那你应该知道类似这样有多痛苦:jquery.js?v=1。

。。

上两张图,对照下构建前的项目,和构建后的项目。请自行意会:

这张图是正常的项目。当中html中假设要引入js,css,解决服务端缓存的办法就是?v=xxx,

每次改动都得改动版本。改动工具类js还得批量替换版本。非常是痛苦。

这张是构建后的项目。你会发现几点:

全部静态资源文件名称编码化。

并且假设有改动。构建后这个编码的名称会自己主动改动,

结果就是html中的js,css照样写,对付服务端缓存,直接构建,

由于每次都不同。

【学习coolie】

请阅读顶部两个coolie链接内容,学习后開始自己上手,你大概会碰上以下这些问题。

【准备工作】

1.安装nodejs--百度去

2.安装coolie

运行npm install -g coolie

3.下载coolie样例

https://github.com/cloudcome/coolie-example/

【问题1-构建】

官网仅仅说了coolie build webroot-dev这个命令,

可是在哪里运行,在哪个文件夹下运行,?

我们想看看样例的文件结构:

事实上这个build命令就是去找coolie.json配置文件,

所以假设你cd到webroot-dev下的话,能够直接coolie build构建。

假设你在webroot-dev父一级文件夹。能够coolie build webroot-dev,

假设你在webroot-dev同级的还有一个目录test内。你能够coolie build ../webroot-dev。

也就是说coolie build path,这个path中要有coolie.json

【问题2-文件结构和配置文件】

不同于其它的一些构建工具,coolie中,仅仅要你遵循默认的文件结构,那coolie.json你基本是不须要改动的。

默认的文件结构如上图,

简单的说就是,按默认结构去开发,然后忘记coolie.json

【问题3-页面约定】

上面谈到文件结构约定,是为了构建方便,

那页面约定就是为了,构建能够正常工作和模块化正常工作。

css约定:

将要构建的css这样写:

    <!--coolie-->
<link rel="stylesheet" href="/static/css/common.css">
<link rel="stylesheet" href="/static/css/index.css">
<!--/coolie-->

写到两段凝视中间,不想构建的css则放到外头。

js约定:

<!-- mine -->
<script coolie src="/static/js/coolie.min.js" data-config="./coolie-config.js" data-main="./index.js"></script>

用过模块化工具的人应该好理解。仅仅是coolie的路径有点绕。看看官网说明吧,

或者按约定文件结构照猫画虎吧。

【问题4-不想构建】

假设碰到不想构建的静态文件,请在coolie.json中配置,

coolie.json也就是之前说的须要忘记的东西。可是这个配置在我看来是唯一的用处,

【问题5-http以及绝对路径】

假设你习惯用直接打开html的方式看页面,那会发现非常多问题,

来吧跑起来看吧。用http看,然后页面全部静态文件请写绝对路径,

比如:/static/img/xx.png

也就是你的http訪问加上上面的路径能够正确看到图片。

怎样http?java。php,。net都有自己的方法,

前端也有,

请npm install -g sts

cd到webroot-dev

sts 8082就可以

【開始happy】

1.依照文件文件夹约定创建项目

2.依照页面约定開始写页面

记住上面的css和js约定就可以,

另外假设习惯使用jquery,bootstrap等工具框架,能够直接引入到页面。(赞~~)

同一时候在js中也能够直接使用$,再赞一个~~

3.查看开发效果

写完后。用上述sts 8082查看效果

4.构建

coolie build path

5.查看构建效果

cd到webroot-pro后sts 8083查看效果。

【为啥happy】

1.压缩&合并

压缩静态文件,降低每次请求文件大小

合并静态文件,降低请求次数

2.js模块化

从一堆js苦海中脱离出来,该干什么的js干什么。并且能够非常方便的找到它

3.构建

脱离服务端缓存和?v=xx的苦海

【很多其它】

很多其它文章,请訪问:http://uikoo9.com

前端构建和模块化工具-coolie的更多相关文章

  1. “流式”前端构建工具——gulp.js 简介

    Grunt 一直是前端领域构建工具(任务运行器或许更准确一些,因为前端构建只是此类工具的一部分用途)的王者,然而它也不是毫无缺陷的,近期风头正劲的 gulp.js 隐隐有取而代之的态势.那么,究竟是什 ...

  2. 前端构建工具gulp使用

    前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ...

  3. 前端模块化工具-webpack

    详解前端模块化工具-webpack webpack是一个module bundler,抛开博大精深的汉字问题,我们暂且管他叫'模块管理工具'.随着js能做的事情越来越多,浏览器.服务器,js似乎无处不 ...

  4. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  5. (转载)前端构建工具gulp使用

    前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ...

  6. 前端构建工具gulp

    前端构建工具gulp使用   前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ...

  7. 【webpack学习笔记(一)】流行的前端模块化工具webpack初探

    从开发文件到生产文件   有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开发的效率.可是 ...

  8. 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上

    .table tr>td:nth-child(1){width: 2em !important;padding-left: .6rem !important;padding-right: .6r ...

  9. 【webpack】流行的前端模块化工具webpack初探

    从开发文件到生产文件   有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开发的效率.可是 ...

随机推荐

  1. Hibernate二级缓存(未完待续)

    1.Hibernate的cache介绍: Hibernate实现了良好的Cache机制,可以借助Hibernate内部的Cache迅速提高系统的数据读取性能.Hibernate中的Cache可分为两层 ...

  2. JS判断客户浏览器是否是IE8浏览器、jQuery判断浏览器内核

    今天在使用encharts的时候由于要兼容IE8,所以最终决定在非IE8浏览器使用encharts,在IE8使用amcharts.于是需要使用JS判断使用的浏览器版本: function IEVers ...

  3. C# 百度搜索结果xpath分析

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  4. linux 环境变量设置方法总结(PATH / LD_LIBRARY_PATH)

    PATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉往往会让我们添加和减少这个变量本身的某些路径,实际上这是不正确的.正确的做法是我们要去修改赋予这个变量数值 ...

  5. HttpUrlConnection的setDoOutput与setDoInput的区别

    httpUrlConnection.setDoOutput(true) httpUrlConnection.setDoInput(true) 这两个方法在develope的httpUrlConnect ...

  6. poj 1797 一条路径中的最小边 再找出最大的

    Sample Input 1 // T3 3// n m1 2 3//u v w1 3 42 3 5Sample Output Scenario #1:4 # include <iostream ...

  7. Android开源库集合(工具)

    图片加载框架: Glide https://github.com/bumptech/glide Android-Universal-Image-Loader https://github.com/no ...

  8. Vue.JS 2.x

    基于ThinkPHP 5.0与Vue.JS 2.x的前后端开源开发框架VueThink VueThink 项目介绍 VueThink是一套基于Vue全家桶(Vue2.x + Vue-router2.x ...

  9. 【BZOJ】3168: [Heoi2013]钙铁锌硒维生素

    题解 Ca Fe Zn Se 显然我们既然初始矩阵就能通过线性变换变成单位矩阵,则该矩阵一定有逆 没有逆输出NIE 而且因为这些向量两两正交,则表示一个向量的时候表示方法唯一 那么我们求一个逆可以求出 ...

  10. linux中如何清空一个文件的内容

    方法1: echo "" > /www.jbxue.com /xxx.log 方法2: echo "" >> /www.jbxue.com / ...