前端构建和模块化工具-coolie
【前言】
假设你之前用过前端模块化工具: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的更多相关文章
- “流式”前端构建工具——gulp.js 简介
Grunt 一直是前端领域构建工具(任务运行器或许更准确一些,因为前端构建只是此类工具的一部分用途)的王者,然而它也不是毫无缺陷的,近期风头正劲的 gulp.js 隐隐有取而代之的态势.那么,究竟是什 ...
- 前端构建工具gulp使用
前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ...
- 前端模块化工具-webpack
详解前端模块化工具-webpack webpack是一个module bundler,抛开博大精深的汉字问题,我们暂且管他叫'模块管理工具'.随着js能做的事情越来越多,浏览器.服务器,js似乎无处不 ...
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
- (转载)前端构建工具gulp使用
前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ...
- 前端构建工具gulp
前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ...
- 【webpack学习笔记(一)】流行的前端模块化工具webpack初探
从开发文件到生产文件 有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开发的效率.可是 ...
- 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上
.table tr>td:nth-child(1){width: 2em !important;padding-left: .6rem !important;padding-right: .6r ...
- 【webpack】流行的前端模块化工具webpack初探
从开发文件到生产文件 有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开发的效率.可是 ...
随机推荐
- zookeeper笔记之基于zk实现分布式锁
一.分布式锁概述 Java中基于AQS框架提供了一系列的锁,但是当需要在集群中的多台机器上互斥执行一段代码或使用资源时Java提供的这种单机锁就没了用武之地,此时需要使用分布式锁协调它们.分布式锁有很 ...
- Caffe 碎碎念
Window Data Layer window data layer 的数据是存在硬盘上的图片, 需要在一个txt里指定用于训练或测试的图片以及bounding box, bounding box ...
- Nginx是什么,有什么优点?为什么选择Nginx做web服务器软件?(经典经典)
1.基础知识 代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客 ...
- 用代码截图去理解MVC原理
[概述] 看了蒋金楠先生的<Asp.Net Mvc框架揭密>,这本书详细地讲解了mvc的原理,很深奥也很复杂,看了几遍才将就明白了一点.他在第一章用了一个他自己写的mvc框架作为例子,代码 ...
- JPA 菜鸟教程 15 继承-一个表-SINGLE_TABLE
原地址:http://blog.csdn.net/JE_GE/article/details/53678422 继承映射策略 一个类继承结构一个表的策略,最终只生成一个表,这是继承映射的默认策略. 举 ...
- jQuery-介绍
一:什么是jQuery jQuery 是一个 JavaScript 库. 二:安装 http://jquery.com/download/ http://jquery.cuishifeng.cn/ j ...
- Kaggle大数据竞赛平台入门
Kaggle大数据竞赛平台入门 大数据竞赛平台,国内主要是天池大数据竞赛和DataCastle,国外主要就是Kaggle.Kaggle是一个数据挖掘的竞赛平台,网站为:https://www.kagg ...
- 动态规划(dp)专题
航线设置 问题描述在美丽的莱茵河畔,每边都分布着N个城市,两边的城市都是唯一对应的友好城市,现需要在友好城市间开通航线以加强往来,但因为莱茵河常年大雾,如果开设的航线发生交叉就有可能出现碰船的现象 ...
- java adapter(适配器)惯用方法
如果现在有一个Iterable类,你想要添加一种或多种在foreach语句中使用这个类的方法,例如方向迭代,应该怎么做呢? 如果之间继承这个类,并且覆盖iterator()方法,你只能替换现有的方法, ...
- Java编程的逻辑 (1) - 数据和变量
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...