前端资源多个产品整站一键打包&包版本管理(二)——如何在bower的配置文件加上注释
问题:
当一个工程里面有好几个项目,每个项目引用同一个包,但是不同的名字,例如在bower中 fancybox 跟 jquery.fancybox 是一样的,我们只需要下载其中的一个版本,而打包工作不是同一个人写的,因此要写如注释,但是bower的配置文件里面不许有注释,那怎么办呢?
解决方法:
使用gulp来生成bower.json 文件
首先我们在Gulpfile.js 文件中
"use strict";
let gulp = require('gulp');
let modify = require('gulp-modify');
let rename = require('gulp-rename');
let strip = require('gulp-strip-comments');
let pump = require('pump'); gulp.task('bower', (cb) => {
pump([
gulp.src('./bower.comment.json'), //使用的文件
strip(),
rename('bower.json'), //重命名
gulp.dest('./') //输出的文件
], cb);
});
首先说一下pump的用法,当我们不使用pump的时候,如果中途出错了,那之前执行的会在,但是使用pump之后,如果中途出错了,之前执行的都不会在。
其次是 gulp-strip-comments 的用法
可以参照 npm中的文档 是用于去除文件中的注释
接下来我们在 bower.comment.json 里面配置我们的包 可以写上注释
{
"name": "main",
"version": "1.0.0",
"homepage": "",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"public/bower_components",
"test",
"tests"
],
"dependencies": {
// "bootstrap-markdown":"~2.0.0",
"components-font-awesome": "4.6.0",
"jquery.atwho": "1.5.1",
"font-awesome": "4.6.3",
"highlight": "9.5.0",
"pickadate": "3.5.6",
"echarts": "3.2.1",
"jquery": "2.2.4",
"jquery-ui": "1.12.0",
"angular-route":"1.4.6",
"clipboard":"1.5.2",
"d3":"3.5.5",
"fullcalendar":"2.9.0",
"markdown":"0.5.0",
"datepicker":"",
// "bootstrap-datetimepicker":"~0.0.11",
/*jquery plugins ---------begin*/
"datetimepicker": "2.5.4", //jquery.datetimepicker.js
"fancybox": "2.1.5", //jquery.fancybox.js
"jquery-form": "3.46.0", //jquery.form.js
"jquery.hotkeys": "", //jquery.hotkeys.js
"jquery-mousewheel": "3.1.13", //jquery.mousewheel.js
"raty": "2.7.0", //jquery.raty.js
"tooltipster": "4.0.4", //jquery.tooltipster
"jquery-typeahead": "2.6.1", //jquery.typeahead
/*jquery plugins ---------end*/
"dropzone": "4.3.0",
"simditor": "2.3.6",
"slick-carousel": "1.6.0",
"ionicons": "2.0.1",
"vivus": "0.3.1",
"vue": "1.0.26",
"underscore":"1.7.0",
"jquery-extends":"0.1.9",
"jquery.validate":"1.13.0",
"jquery.scrollTo":"1.4.13",
// "file-upload":"1.7.5",
"d3pie":"0.1.3",
"bootstrap-datepicker":"1.6.1",
"bootstrap-datetimepicker":"0.0.11"
},
"resolutions": {
"jquery": "2.2.4",
"angular":"1.4.6",
"bootstrap": "3.3.6"
}
}
接下来输入
gulp bower
就可以看到目录下生成一个bower.json 了、里面就是没有注释的bower配置文件
打开
{
"name": "main",
"version": "1.0.0",
"homepage": "",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"public/bower_components",
"test",
"tests"
],
"dependencies": {
"components-font-awesome": "4.6.0",
"jquery.atwho": "1.5.1",
"font-awesome": "4.6.3",
"highlight": "9.5.0",
"pickadate": "3.5.6",
"echarts": "3.2.1",
"jquery": "2.2.4",
"jquery-ui": "1.12.0",
"angular-route":"1.4.6",
"clipboard":"1.5.2",
"d3":"3.5.5",
"fullcalendar":"2.9.0",
"markdown":"0.5.0",
"datepicker":"",
"datetimepicker": "2.5.4",
"fancybox": "2.1.5",
"jquery-form": "3.46.0",
"jquery.hotkeys": "",
"jquery-mousewheel": "3.1.13",
"raty": "2.7.0",
"tooltipster": "4.0.4",
"jquery-typeahead": "2.6.1",
"dropzone": "4.3.0",
"simditor": "2.3.6",
"slick-carousel": "1.6.0",
"ionicons": "2.0.1",
"vivus": "0.3.1",
"vue": "1.0.26",
"underscore":"1.7.0",
"jquery-extends":"0.1.9",
"jquery.validate":"1.13.0",
"jquery.scrollTo":"1.4.13",
"d3pie":"0.1.3",
"bootstrap-datepicker":"1.6.1",
"bootstrap-datetimepicker":"0.0.11"
},
"resolutions": {
"jquery": "2.2.4",
"angular":"1.4.6",
"bootstrap": "3.3.6"
}
}
我们开发的时候就在bower.comment.json里面写我们的包引入 这样做的好处就是:开发的时候我们可能由不同的人来开发,提高代码的可阅性
前端资源多个产品整站一键打包&包版本管理(二)——如何在bower的配置文件加上注释的更多相关文章
- 前端资源多个产品整站一键打包&包版本管理(一)
来新公司工作的第五个月.整站资源打包管理也提上了日程. 问题: 首先.什么是整站的打包管理呢? 我们公司的几个重要产品都在同一个webapp里面,但是,不同的开发部门独立开发不同的产品,长期以来,我们 ...
- 前端资源多个产品整站一键打包&包版本管理(三)—— gulp分流
问题: 当我们一个工作台里面有好几个项目的时候,我们要为项目的前端资源进行打包,但是,gulpfile只有一个,如果我们把所有的打包都放在同一个文件里面,首先文件会越来越大,而且不便于管理,这时,我们 ...
- 前端资源多个产品整站一键打包&包版本管理(四)—— js&css文件文件打包并生成哈希后缀,自动写入路径、解决资源缓存问题。
问题: 当我们版本更新的时候,我们都要清理缓存的js跟css,如何使得在网页中不需要手动清理呢? 答案: 生成带有哈希后缀的js跟css文件 1.文件路径 路径中的conf.js 是用于放置全局打包的 ...
- 前端到后台ThinkPHP开发整站--php开发案例
前端到后台ThinkPHP开发整站--php开发案例 总结 还是需要做几个案例,一天一个为佳,那样才能做得快. 从需求分析着手,任务体系要构建好,这样才能非常高效. 转自: 前端到后台ThinkPHP ...
- 前端到后台ThinkPHP开发整站(5)
今天周五了,这个项目做了五个晚上了,明天周末不用上班有一整天的时间来结束这个项目了,今晚主要把后台界面给弄出来了. 大概的整个后台界面就是这个样子了,接下来的工作就是搬砖了,一个个菜单功能填上去就是了 ...
- 前端到后台ThinkPHP开发整站(4)
今晚继续我的这个项目的开发,今晚也是写的不多,主要写了一个菜单管理功能的CURD方法,前端界面还没有进行编写. 菜单管理Model层的代码: <?php namespace Common\Mod ...
- 前端到后台ThinkPHP开发整站(2)
我这次使用的ThinkPHP版本是:3.2.3版本,还有会使用到一个弹出层插件,叫 layer,官网地址是:http://layer.layui.com/.废话不多说,进入撸码环节. 1.通用方法编写 ...
- 前端到后台ThinkPHP开发整站(1)
1.前言: 我个人从来没有写过博客文章,作为一个程序员没有自己的博客算是一个合格的程序员,所以我地想想也要经营起一个的博客,做一个小项目,写这博客算就做这个项目的一个项目笔记吧!现在自学着ThinkP ...
- 前端到后台ThinkPHP开发整站(完)
久违了,今天终于抽空把最后的写完了,这是这个项目的最后一篇文章了,把前台的栏目控制器和文章内容控制器的功能实现了. 栏目控制器: <?php namespace Home\Controller; ...
随机推荐
- [AngularJS] Using AngularJS interceptors with $http
Sometimes you might need to modify HTTP requests and responses. This could be for a variety of reaso ...
- Ajax防止重复提交
转:http://www.cnblogs.com/jinguangguo/archive/2013/05/20/3086925.html 谈谈防止重复点击提交 首先说说防止重复点击提交是什么意思. ...
- windows MySQL 5+ 服务手动安装
一.手动安装mysql 1.准备一个mysql免安装版本(把原来安装好的版本复制一份即可.一次安装多次使用^_^),将mysql复制到指定目录. 2.配置my.ini文件(本例使用的是5.0.22版本 ...
- 《RESTful Web Services》第四章 设计URI
引言 URI是跨越Web的资源描述符,一个URI由以下内容组成——协议.主机.端口号.路径
- Events
Events The idea behind Events is the ability to send data, as parameters, to interested Listeners an ...
- Oracle恢复已删除数据
Oracle恢复已删除的数据,主要有两种方法:SCN和时间戳. 一.通过SCN恢复删除且已提交的数据 1.获得当前数据库的scn号 select current_scn from v$database ...
- java集合总结
java中集合是很重要的一点,巩固这边学习的知识,把知识理一下 按马士兵的视频,总结的也很好,集合就是一个“1136” 1个图,1个类Collections,3个知识点:增强for循环,泛型,打包和解 ...
- 虚拟机Linux系统中安装SYNOPSYS工具图解教程
V TRON KO 2.8.2 启动 dv 在终端运行命令: lmli2 然后再运行命令: dv V TRON KO V TRO ...
- MongoDB基本操作
转:http://zhidao.baidu.com/link?url=D5s4tNnP6hH0XPZkFooV-o4MQH3pNZh7C3rtLX_HtVWaIyBRhLIUyoZYfVv15l2eS ...
- 初步接触html心得
接触HTML大概有七天,做一下小总结,过过记忆. html大致可分为三部分:Dtd头.Head.Body三大部分. Dtd头:是用于浏览器编辑的,也就是俗话说的给电脑看的的东西. Head:内细分下大 ...