grunt:前端自动化构建

Grunt自动化加密js环境 grunt自动化加密js环境,我自己封装的啊,有了nodejs环境后,肯定能用!! 立即下载

Grunt 基于 Node.js ,用JS 开发,这样就可以借助 Node.js 实现跨系统跨平台的桌面端的操作,例如文件操作等等。此外,Grunt 以及它的插件们,都作为一个 包 ,可以用 NPM 安装进行管理。

安装 Grunt

确保已经安装了 Node.js。实际上,安装的并不是Grunt,而是 Grunt-cli,也就是命令行的Grunt

npm install -g grunt-cli

生成 package.json 文件

package.json 文件其实是 Node.js 来描述一个项目的文件,JSON 格式。生成这个文件超级简单,推荐用命令行交互式的生成一下,cd进入项目目录后:

npm init

安装 Grunt 和所需要的插件

打算让 Grunt 帮忙实现下面几个功能:检查每个 JS 文件语法、合并两个 JS 文件、将合并后的 JS 文件压缩、将 SCSS 文件编译、新建一个本地服务器监听文件变动自动刷新 HTML 文件。

根据这些任务需求,需要用到:

下面我们就要在这个项目中安装这些插件,执行命令:

npm install grunt --save-dev

打开 package.json 文件看下,是不是多了

"devDependencies": {
  "grunt": "^0.4.5"
}

继续安装 Grunt 的插件,当然,不需要一个个的安装,可以执行以下命令:

npm install --save-dev grunt-contrib-concatgrunt-contrib-jshint grunt-contrib-sass grunt-contrib-uglifygrunt-contrib-watch grunt-contrib-connect

配置 Gruntfile.js 的语法

这是一个 JS 文件,你可以写任意的 JS 代码,比如声明一个 对象来存储一会要写任务的参数,或者是一个变量当作开关等等。

然后,所有的代码要包裹在

module.exports = function(grunt) {
    ...
};

里面。没有为什么。

里面的代码,除去自定义的乱七八糟的 JS,与 Grunt 有关的主要有三块代码:任务配置代码、插件加载代码、任务注册代码。

任务配置代码

例如下面代码:

grunt.initConfig({
 pkg:grunt.file.readJSON('package.json'),
 uglify: {
  options: {
   banner: '/*!<%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %>*/\n'
    },
  build: {
   src:'src/<%= pkg.name %>.js',
   dest:'build/<%= pkg.name %>.min.js'
  }
 }
});

可以看出,具体的任务配置代码以对象格式放在grunt.initConfig 函数里面,其中先写了一句 

pkg:grunt.file.readJSON('package.json') 功能是读取 package.json 文件,并把里面的信息获取出来,方便在后面任务中应用

在Uglify 插件下面,有一个 build 任务,内容是把XX.js 压缩输出到 xx.min.js 里面。如果你需要更多压缩任务,也可以参照 build 多写几个任务。

插件加载代码

这个就比较简单了,由于上面任务需要用到 grunt-contrib-uglify,当 grunt-contrib-uglify安装到我们的项目之后,写下下面代码即可加载:

grunt.loadNpmTasks('grunt-contrib-uglify');

任务注册代码

插件也加载了,任务也布置了,下面我们得注册一下任务,使用

grunt.registerTask('default', ['uglify']);

来注册一个任务。上面代码意思是,你在 default 上面注册了一个 Uglify 任务,default 就是别名,它是默认的 task,当你在项目目录执行 grunt 的时候,它会执行注册到 default 上面的任务。

也就是说,当我们执行 grunt 命令的时候,uglify 的所有代码将会执行。我们也可以注册别的 task,例如:

grunt.registerTask('compress', ['uglify:build']);

如果想要执行这个 task,我们就不能只输入 grunt 命令了,我们需要输入 grunt compress 命令来执行这条 task,而这条 task 的任务是 uglify 下面的 build 任务,也就是说,我们只会执行 uglify 里面 build 定义的任务,而不会执行 uglify 里面定义的其他任务。

这里需要注意的是,task 的命名不能与后面的任务配置同名,也就是说这里的 compress 不能命名成 uglify,这样会报错或者产生意外情况

加上这三块代码,我们的示例 Gruntfile.js 就是这样子的:

module.exports = function(grunt) {
  // Projectconfiguration.
 grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner:'/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd")%> */\n'
      },
      build: {
        src:'src/<%= pkg.name %>.js',
        dest:'build/<%= pkg.name %>.min.js'
      }
    }
  });
  // Load theplugin that provides the "uglify" task.
 grunt.loadNpmTasks('grunt-contrib-uglify');
  // Defaulttask(s).
 grunt.registerTask('default', ['uglify']);
};

配置 Gruntfile.js:实际操作,这个文件手动创建即可

下面的代码是一个实际的操作代码

module.exports = function(grunt) {
	
	var sassStyle = 'expanded';
	
	grunt.initConfig({
		pkg: grunt.file.readJSON('package.json'),
		sass: {
			output:{
				options:{
					style:sassStyle
				},
				files:{
					'./style.css':'./scss/style.scss'
				}
			}
		},
		concat: {
			options: {
				separator: '',
			},
			dist: {
				src: ['./src/test_1.js','./src/test_2.js'],
				dest: './global.js',
			},
		},
		uglify: {
			compressjs: {
				files:{
					'./global.min.js':['./global.js']
				}
			}
		},
		jshint: {
			all: ['./global.js']
		},
		watch: {
			scripts: {
				files: ['./src/test_1.js','./src/test_2.js'],
				tasks: ['concat','jshint','uglify']
			},
			sass: {
				files: ['./scss/style.scss'],
				tasks: ['sass']
			},
			livehood: {
				options: {
					livereload: '<%=connect.options.livereload %>'
				},
				files: [
				'index.html',
				'style.css',
				'js/global.min.js'
				]
			}
		},
		connect: {
			options: {
				port: 9000,
				open: true,
				livereload: 35729,
				hostname: 'localhost'
			},
			server: {
				options: {
					port: 9091,
					base: './'
				}
			}
		}
	});

	grunt.loadNpmTasks('grunt-contrib-sass');
	grunt.loadNpmTasks('grunt-contrib-concat');
	grunt.loadNpmTasks('grunt-contrib-jshint');
	grunt.loadNpmTasks('grunt-contrib-uglify');
	grunt.loadNpmTasks('grunt-contrib-watch');
	grunt.loadNpmTasks('grunt-contrib-connect');

	grunt.registerTask('outputcss',['sass']);
	grunt.registerTask('concatjs',['concat']);
	grunt.registerTask('compressjs',['concat','jshint','uglify']);
	grunt.registerTask('watchit',['sass','concat','jshint','uglify','connect','watch']);
	grunt.registerTask('default');

};

  • sass指的是配置编译 Scss 文件的 task。把示例Gruntfile.js结构复制进去:需要先安装ruby、sass、按顺序执行ruby -v,和sass -v。这里是将 ./scss/style.scss 编译成 ./style.css 文件。编译多个的时候,使用类似json的结构在后边添加即可
  • concat指的是把两个js文件合成一个js文件
  • uglify指的是将js文件压缩成min.js文件
  • jshint指的是检查文件
  • watch指的是监听文件变动
  • connect指的是创建本地服务,刷新页面













FOC无刷电机磁编码器机械角度与电角度自动对齐校准及电机极对数自动获取的方法 本文提出磁编码器机械角度与电角度自动对齐校准方法及电机极对数自动获取方案。通过通直流电流使转子定向,读取机械角度并计算电角度偏移量,实现精确对齐;同时利用低速旋转时检测反电动势过零点次数,结合机械角度变化量自动计算极对数。核心算法包括转子定向、偏移量计算、极对数推导等步骤,并提供了基于STM32的C语言实现代码。该方法适用于工业伺服、机器人等高精度控制场景,需注意负载安全、参数调整和误差处理。两种自动化流程可有效解决电机安装调试中的角度对齐和参数识别问题。 阅读详情

相关推荐

dq轴坐标系下的电路方程

dq轴坐标系下的电路方程 dq轴坐标系是一种常见的电路方程,但是再dq轴坐标系下电路元件的电压电流dq轴存在一定的耦合,本文针对三相电路推导了dq轴坐标系下的电路电路方程进行一个推导,首先先列出来派克变换的公式 派克变换 [AdAqA0]=23[cos⁡(θ)cos⁡(θ−2π/3)cos⁡(θ+2π/3)−sin⁡(θ)−sin⁡(θ−2π/3)−sin⁡(θ+2π/3)1/21/21/2][AaAbAc]\left[\begin{array}{c}A_d\\A_q\\A_0 \end{array}\ri

Mr.Young的博客 1万+

前端自动化构建-保姆级文档

前端自动化构建 gulp

打工人 1701

COMSOL仿真分析高压直流GIS/GIL绝缘性能优化

高压直流气体绝缘设备(GIS/GIL)的绝缘性能是保障电网可靠运行的关键。通过COMSOL Multiphysics多物理场仿真,可以深入分析气固界面电场分布与电荷积聚机理。该技术结合静电场、热场和电荷传输耦合计算,能准确模拟温度梯度对SF6气体与环氧树脂界面特性的影响。工程实践中,这类仿真可优化导体结构设计、改进绝缘材料配方,并建立电场-温度关联预警模型。特别是在80℃高温工况下,仿真显示界面电荷密度会显著增加23%,这对设备安全运行具有重要指导价值。

weixin_32075843的博客 194

grunt基本使用

grunt基本使用方法

qq_36893477的博客 693

SAR成像系列:【3】合成孔径雷达(SAR)的二维回波信号与简单距离多普勒(RD)算法 (附matlab代码)

二维回波信号分析

zr2006_7的专栏 2万+

网络安全 —— 实验(基于华为eNSP模拟器)

8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)5. 实验五 —— 将交换机作为PC端通过交换机相连。5. 实验五 —— 将交换机作为PC端通过交换机相连。4. 实验四 —— 两个PC机通过两台交换机相连。2. 实验二 —— 两个PC机通过交换机相连。2. 实验二 —— 两个PC机通过交换机相连。

这个家伙看起来很懒,只想把你留下来哦 9343

自动化构建工具Grunt、Gulp 讲解及实战

使用grunt完成项目的自动化构建 一、准备工作 grunt快要退出历史舞台了,简单学习下 mkdir my-grunt yarn init --yes //创建package模块 yarn add grunt //安装grunt模块 二、创建gruntfile.js文件 //Grunt的入口文件 //用于定义一些需要Grunt自动执行的任务 //需要导出一个函数,接收一个grunt的参数 module.exports = grunt => { grunt.registerTask('

woyebuzhidao321的博客 1253

华硕ROG枪神双系统实战:Ubuntu安装避坑指南

本文是华硕ROG枪神笔记本安装Ubuntu双系统的详细避坑指南。针对其独特的硬件与BIOS设计,文章核心解决了VMD控制器导致硬盘无法识别、驱动兼容性等关键难题,并提供了从BIOS设置、分区方案到安装后驱动配置与性能调优的一站式解决方案,帮助用户实现稳定的双系统体验。

raspberrypi5的博客 546

前端自动化构建

在自己还得不到幸福的时候,不要靠橱窗太近,盯着幸福出神

yuan 1024

OWASP-ZAP扫描器的使用

目录 OWASP-ZAP 更新 代理 目录扫描 主动扫描(Active Scan) 扫描结果 生成报告 OWASP-ZAP OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者积极维护。它可以帮助你在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。 也可以说ZAP是一个中间人代理。它能够获取你对Web应用程序发出的所有请求以...

谢公子的博客 2万+

【Envi风暴】Envi5.6安装图文教程(附Envi5.6完整版下载)

【Envi风暴】Envi5.6与应用商店app store安装图文教程(附Envi5.6完整版下载)从文末网盘下载完整的ENVI5.6安装包,如下所示:双击envi56-win.exe,开始安装。将f__x64下的两个补丁文件拷贝到安装路径。将f__x86下的两个补丁文件拷贝到安装路径。

智慧空间实验室 9210

grunt 使用教程及步骤

grunt 是一套前端自动化构建工具,一个基于 NodeJs 的命令行工具,它是一个任务运行器,配合器丰富强大的插件

weixin_44732078的博客 3221

PCL RANSAC拟合分割多条直线【2026最新版】

使用RANSAC算法拟合分割多条直线,输出每一条直线的拟合参数到控制台,并保存直线点云到本地文件夹。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 7974

浅谈前端自动化构建 -- Grunt、Gulp、FIS

前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:内容较多,建议通过左侧导航栏进行阅读 自动化构建 基本介绍 一切重复工作本应自动化。将开发中的源代码,自动化的转换成生产环境中可以运行的程序,转换过程称为 自动化构建工作流。 作用: 1,脱离运行环境兼容带来的问题 2,使用提高效率的语法、规范和标准 3、构建转换那些不被支持的特性 自动化构建初体验 1,安装 sass 模块,并将其作为开发依赖进行安装 $ yarn add sass --dev # or npm install sass --s

zimeng303的博客 724

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

前端自动化构建工具【grunt、gulp、webpack】

前端自动化构建工具【grunt、gulp、webpack】 1.它们的作用是什么? 以前的程序员,做项目的时候,需要大量的合并css,js文件,花费了大量的时间在合并压缩上面,在前端开发中会出现很多重复性、无意义的劳动。后来,为了希望这一切都可以自动完成,安装常用插件,合并插件、压缩插件等、就出现了这几种自动化构建工具。 2.简单介绍一下这三种工具? Grunt是js任务管理工具(自动化构建工具)...

weixin_43263577的博客 751

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Grunt && Gulp前端自动化构建工具

前端自动化构建一、自动化构建的认识1. 概念相关2. 自动化初体验二、Grunt1. Grunt 的基本使用2. Grunt 标记任务失败1. 如何标记2. 失败之后带来的影响3. Grunt 的配置方法4. Grunt 多目标任务5. Grunt 插件的使用三、Gulp1. 基本使用2. gulp 创建组合任务总结 一、自动化构建的认识 1. 概念相关 学自动化构建的目的? 比如说在一个项目中我们想使用 ecmascript 的最新特性,以及想使用 sass来编写css,但这些内容都不是浏览器所能够识别的

weixin_51457459的博客 575

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

前端工具链:Gulp和Grunt有什么区别?如何使用它们进行自动化构建?

Gulp和Grunt各有优缺点。如果你追求更高的构建速度和更灵活的任务管理,可以选择Gulp;如果你更注重配置的简洁性和丰富的插件生态,可以选择Grunt。无论选择哪种工具,都需要根据项目需求和团队熟悉程度来决定。对于新手来说,Grunt可能更容易上手;而对于需要高效构建的大型项目,Gulp可能是更好的选择。对于初学者来说,Gulp通常被认为比Grunt更容易上手。Gulp的配置更简洁、API更少、学习曲线更平缓,这些特点使得初学者可以更快地掌握其使用方法。

破损的天堂鸟博客 1401

10 分钟快速掌握 Grunt:前端自动化构建终极入门指南

Grunt 是一款功能强大的 JavaScript 任务运行器(Task Runner),它能够帮助前端开发者自动化处理各种繁琐的任务,如文件压缩、代码检查、测试运行等,从而显著提升开发效率。通过简单的配置,Grunt 可以将重复的工作自动化,让开发者专注于更重要的代码编写工作。 ## 为什么选择 Grunt? 在前端开发过程中,我们经常需要执行一系列重复的任务,比如: - 压缩 JavaSc

gitblog_00236的博客 814

常用的前端自动化构建工具gulp/grunt/fis --简介

常用的前端自动化构建工具 之前我们自动化构建将入门级别使用的 NPM Scripts自动化构建工具对于相对复杂的项目构建会比较吃力,那么我们会了解 Gulp Grunt fIS 用法基本相同:都是通过一些简单的代码,组织一些插件的使用,然后就可以用工具代替我们一些重复的工作,增强开发效率。 Grunt 是基于内磁盘实现的 最早的自动化构建工具 Grunt(点击可进入官网查看) 优点: 它的插件几乎可以帮助我们完成任何我们想要做的事情, 缺点: 由于工作过程是基于临时文件去实现的,所以构建速度较慢。 下

杜杜的博客 668

Grunt等前端自动化构建工具

一、前端解决方案 简介:作为一名开发人员,在WEB前端项目开发中,重复而枯燥的工作太多,Grunt自动化的项目构建工具,帮你解决这些问题,对重复执行的任务像压缩,合并,编译,单元测试及代码检查等, 通过配置Grunt自动化工具,可以减轻你的劳动,简化工作。 主流前端解决方案:Yeoman、Bower、Grunt|Gulp 二、NodeJS简介 nodejs的安装 三、yeoman 作...

weixin_34114823的博客 68

requirejs + sass 实现的前端及 grunt 自动化构建

对于 现在的 vue 、 react 、webpack 来说也许有点旧了,有时候,越简单的技术越可靠,备份一下 module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('pac...

ddk87869的博客 182

grunt-wiredep 集成实战:打造完整的前端自动化构建流水线

grunt-wiredep 是一款基于 Grunt 的 Bower 依赖注入插件,它能自动扫描项目中的 Bower 组件,把对应的 CSS 与 JS 引用精准写入你指定的 HTML 文件。对新手而言,grunt-wiredep 最大的价值在于:装上它,你就不必再手动维护一堆 `<script>` 和 `<link>` 标签,前端自动化构建流水线从此真正"自动"起来。本文会带你从零开始完成 grun

gitblog_01021的博客 213

Grunt——前端自动化构建工具

Grunt和 Grunt 插件是通过npm安装并管理的,npm是Node.js的包管理器。 Grunt 0.4.x 必须配合Node.js>= 0.8.0版本使用。;奇数版本号的 Node.js 被认为是不稳定的开发版。 在安装 Grunt 前,请确保当前环境中所安装的npm已经是最新版本,执行npm update -g npm指令进行升级(在某些系统中可能需要sud...

weixin_30674525的博客 127

【前端工程化】二:自动化构建工具Grunt和Gulp的使用及封装工作流与发布

自动化构建 在开发网页应用的时候,经常会有一些需要在开发阶段去重复执行的命令 NPM Script是实现自动化构建工具流的最简单方式 “build”: “sass scss/main.scss css/style.css --watch”, npm script的preserve钩子机制,在执行yarn serve之前执行yarn build; “preserve”: "yarn build, 使用npm-run-all模块可以同时执行多个script任务;// npm install npm-ru

Whoopsina的博客 782

【前端自动化构建 grunt、gulp、webpack】

参考资料: 用自动化构建工具增强你的工作流程!:http://www.gulpjs.com.cn/ gulp详细入门教程:http://www.ydcss.com/ JavaScript构建(编绎)系统大比拼:Grunt vs. Gulp vs. NPM:http://news.cnblogs.com/n/502111/ 基于gulp和webpack的前端工程化:https://boke....

weixin_33834075的博客 102
上一篇: JavaScript:模仿块级作用域
下一篇: flex:前端弹性盒子布局浏览器兼容
github_37320188
博客等级 码龄10年 24粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值