前端资源多个产品整站一键打包&包版本管理(二)——如何在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; ...
随机推荐
- 什么是集群(cluster)
1.集群 1.1 什么是集群 简单的说,集群(cluster)就是一组计算机,它们作为一个总体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点(node).一个理想的集群是,用户从来不会意识 ...
- maven 把spring项目打包成可执行的文件
转载自http://www.mamicod.e.com/info-detail-635726.html 最近需要解决Maven项目导入可执行的jar包的问题,如果项目不包含Spring,那么使用mvn ...
- RapidXml用法
一.写xml 文件 #include <iostream> #include "rapidxml/rapidxml.hpp" #include "rapidx ...
- 重现PHP Core的调用栈
以前, 我曾经介绍过如何通过PHP的Core文件获取信息:如何调试PHP的Core之获取基本信息, 对于调用参数这块, 当时介绍的获取方法比较复杂. 于是今天我为PHP 5.4的.gdbini ...
- IBM Rational ClearCase 部署指南
引言 随着时间的推移,可视化设计与软件配置管理(SCM)已经逐渐成为现代软件项目成功的关键因素.IBM Rational 是 IBM Rational XDE 和 IBM Rational Clear ...
- python--列表的使用
1.定义列表: names = ['Mo',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Mo' & ...
- Ⅳspring的点点滴滴--方法和事件
承接上文 方法和事件 .net篇(环境为vs2012+Spring.Core.dll v1.31) public abstract class MethodDemo { protected abstr ...
- ASP.NET 不同页面之间传值
不同页面之间如何传值?我们假设A和B两个页面,A是传递,B是接收. 下面学习4种方式: 通过URL链接地址传递 POST方式传递 Session方式传递 Application方式传递 1. 通过UR ...
- 解决IllegalStateException: Can not perform this action after onSaveInstanceState:
今天做项目中的支付宝功能,是在fragment中做的,在支付成功后,想切换到支付成功的页面. 结果就报错了IllegalStateException: Can not perform this act ...
- 数据读取器对象SqlDataReader与数据适配器对象SqlDataAdapter的使用
一.数据读取器对象SqlDataReader的使用 如何执行有查询结果集的select语句. 1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象 ...