Node环境下运用grunt合并、压缩js文件

news/2024/7/4 8:23:41 标签: python, javascript, json

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

打开cmd命令行 输入 
node - v 显示当前版本号
npm  - v 显示npm版本号 


Node.js中npm怎么通过淘宝镜像安装模块?
#先安装 npm install cnpm -g完了以后直接通过 cnpm 来替换 npm 使用即可
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

一、运用grunt合并、压缩js文件
进入我们文件下路径下 例如: cd d:\NodeWorkSpace\news
采用npm合并js文件
1.cnpm init      在当前目录下会生成一个package.json文件

我用的基本上就是两个插件

压缩插件
"grunt-contrib-uglify": "~0.5.0"
合并插件
"grunt-contrib-concat": "~0.4.0"

javascript">{
  "name": "news",
  "version": "1.0.0",
  "devDependencies": {
	"grunt": "~0.4.3",
	"grunt-contrib-uglify": "~0.5.0"  //压缩插件
  },
  "description": "run grunt",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Ron",
  "license": "ISC"
}


2.在news下面手动创建一个Gruntfile.js文件

压缩js文件

javascript">module.exports=function(grunt){
	//项目配置
	grunt.initConfig({
		//读取配置项
		pkg:grunt.file.readJSON('package.json'),
		//执行具体任务
		uglify:{
			//注释
			options:{
				banner:"/* 这个文件 <%= pkg.name %> <%= pkg.version %>*/ \n",
			},
			build:{
				//被压缩的文件的路径
				src: ["src/www-hyent-cc.js"],
				//被压缩的文件路径
				dest: "dest/www-hyent-cc.min.js"
			}
		}
	});
	
	//加载压缩插件
	grunt.loadNpmTasks("grunt-contrib-uglify");
	//执行任务
	grunt.registerTask("default",["uglify"]);
	
}

合并js文件

javascript">module.exports=function(grunt){
	//项目配置
	grunt.initConfig({
		//读取配置项
		pkg:grunt.file.readJSON('package.json'),
		//执行具体任务 concat:合并 uglify:压缩
		concat:{
			//设置输出文件合并的字符
			options:{
				separator:""
			},
			dist:{
				//被合并的文件的路径
				src: ["src/index1.js","src/index2.js"],
				//被合成的文件路径
				dest: "dest/libs.js"
			}
		}
	});
	
	//加载合并插件
	grunt.loadNpmTasks("grunt-contrib-concat");
	//执行任务
	grunt.registerTask("default",["concat"]);
	
}

我的d:\NodeWorkSpace\news文件夹有如下目录及文件

3.在当前目录下执行cnpm install  会安装产生一个node_modules目录,里面有一系统插件
4.当前目录下运行grunt命令  在当前目录下创建一个dest文件夹,里面带有合并/压缩的js文件。

然后在D:\NodeWorkSpace\news\dest目录下就可以看见有js文件生成

转载于:https://my.oschina.net/heensenxi/blog/758300


http://www.niftyadmin.cn/n/1339342.html

相关文章

【python标准库学习】re模块

2019独角兽企业重金招聘Python工程师标准>>> 1.什么是re 正则表达式一门相对通用的语言&#xff0c;在python中也有对正则表达式的支持&#xff0c;那就是的内置re模块。正则表达式就是一系列的规则去匹配字符串然后进行相应的操作&#xff0c;这些规则网上一搜一大…

C++函数后面加“:”的含义

C函数后面加“&#xff1a;”的含义在成员函数后面在构造函数后对父类进行初始化对类成员进行初始化对类的const成员变量进行初始化参考链接在成员函数后面 c成员函数后面跟“&#xff1a;”表示的是赋值&#xff0c;这是c的特性&#xff1a; A( int aa, int bb ):a(aa),b(bb…

C++ 互斥锁std::mutex的使用

mutex&#xff08;互斥量&#xff09;是一个可以处于两态之一的变量:解锁和加锁。这样&#xff0c;只需要一个二进制位表示它&#xff0c;不过实际上&#xff0c;常常使用一个整型量&#xff0c;0表示解锁&#xff0c;而其他所有的值则表示加锁。互斥量使用两个过程。当一个线程…

Spring透过ApplicationListener来触发contextrefreshedevent事件

Spring通过ApplicationListener接口来触发contextrefreshedevent事件在开发时有时候需要在整个应用开始运行时执行一些特定代码&#xff0c;比如初始化环境&#xff0c;准备测试数据、加载一些数据到内存等等。在Spring中可以通过ApplicationListener来实现相关的功能&#xff…

C++函数默认参数(函数传入实参个数比形参个数少)

C函数默认参数定义参数添加顺序注意事项转载链接定义 在C中&#xff0c;定义函数时可以给形参指定一个默认的值&#xff0c;这样调用函数时如果没有给这个形参赋值&#xff08;没有对应的实参&#xff09;&#xff0c;那么就使用这个默认的值。也就是说&#xff0c;调用函数时可…

期权有哪些坑,你知道吗?

本文为纯原创文章,应朋友邀请而编写。文章花费了笔者大量的精力投入。琢磨着如何行文&#xff0c;怎么样通俗点&#xff0c;提炼出有用的观点来&#xff0c;放在标题中。目标的解决广大求职者的最关心的问题。 转载请注明来源地址。 一、概念理解篇 1、理解A股、B股、C股等 2、…

Django 过滤器 实例

实例&#xff11; safe让Html标签以及一些特殊符号&#xff08;如<&#xff09;生效&#xff0c;下面以例子说明&#xff1a; # value <b>CPT</b># 那么输出的时候&#xff0c;CPT就是加粗的&#xff0c;如果不加safe那么显示出来的就是纯文本<b>CPT<…

requestAnimationFrame,Web中写动画的另一种选择

HTML5/CSS3时代&#xff0c;我们要在web里做动画选择其实已经很多了: 你可以用CSS3的animattionkeyframes; 你也可以用css3的transition; 你还可以用通过在canvas上作图来实现动画&#xff0c;也可以借助jQuery动画相关的API方便地实现; 当然最原始的你还可以使用window.setTim…