nodejs、npm、grunt——名词解释
2015-09-23 20:07
309 查看
最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发、发布体系。
grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的用处和相互关系。
一、名词解释
nodejs——可以在本地执行js代码的环境(类似java的jdk)
npm——nodejs程序包的管理和分发工具
grunt——运行在nodejs上的,基于任务的,项目构建工具 (npm+grunt≈java里的maven)
我的理解是,以web前端项目构建为例:
1. 为了方便的压缩js文件,我写了一个nodejs程序A;
2. 后来项目中又出现了合并js、压缩css等需求,于是我继续写了nodejs程序BCD;
3. 随着ABCD的增多,以及ABCD要满足我不同项目里的灵活的配置需求,这时候,急需要一个工具来管理众多nodejs程序的引入和配置,so——grunt出现了;
4. grunt火起来之后,我也想用一下,那之前写的js压缩程序A因为不能兼容grunt,所以我又稍作改动,搞出了一个A for grunt;
5. 慢慢的众多开发者们就在nodejs上开发了很多的xx for grunt 并且起了一个通俗的名字,叫grunt插件,可以通过npm来管理;
以上的一套体系,再拿java做下类比:
jetty是一个javaweb服务器,我可以直接单独安装启动,也可以用maven这个工具来安装"jetty for maven"这个插件并且启动它;
uglify是一个nodejs程序,我可以直接引入运行,也可以用grunt这个工具来下载引入"grunt-contrib-uglify"这个插件并运行它。
grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的用处和相互关系。
一、名词解释
nodejs——可以在本地执行js代码的环境(类似java的jdk)
npm——nodejs程序包的管理和分发工具
grunt——运行在nodejs上的,基于任务的,项目构建工具 (npm+grunt≈java里的maven)
我的理解是,以web前端项目构建为例:
1. 为了方便的压缩js文件,我写了一个nodejs程序A;
2. 后来项目中又出现了合并js、压缩css等需求,于是我继续写了nodejs程序BCD;
3. 随着ABCD的增多,以及ABCD要满足我不同项目里的灵活的配置需求,这时候,急需要一个工具来管理众多nodejs程序的引入和配置,so——grunt出现了;
4. grunt火起来之后,我也想用一下,那之前写的js压缩程序A因为不能兼容grunt,所以我又稍作改动,搞出了一个A for grunt;
5. 慢慢的众多开发者们就在nodejs上开发了很多的xx for grunt 并且起了一个通俗的名字,叫grunt插件,可以通过npm来管理;
以上的一套体系,再拿java做下类比:
jetty是一个javaweb服务器,我可以直接单独安装启动,也可以用maven这个工具来安装"jetty for maven"这个插件并且启动它;
uglify是一个nodejs程序,我可以直接引入运行,也可以用grunt这个工具来下载引入"grunt-contrib-uglify"这个插件并运行它。
相关文章推荐
- node.js基础教程
- LeetCode(49) Populating Next Right Pointers in Each Node I II
- mac使用nvm安装node进行多版本管理
- LintCode Remove Node in Binary Search Tree
- Node.js Cluster多进程负载测试
- [LeetCode]#19 Remove Nth Node From the End of list
- Node.js知识点详解(一)基础部分
- node.js框架express入门模板
- [LeetCode]Delete Node in a Linked List
- Grunt学习笔记之开发环境的搭建与创建一个基本的项目
- nodejs+express 初级安装测试
- 快速搭建 Node.js 开发环境
- nodejs爬虫简易实现和jquery的each方法
- nodejs显现events.js:72抛出错误
- LeetCode(38) Delete Node in a Linked List
- 执行start-dfs.sh后,datenode没有启动
- Node.js中的DNS模块
- 从零开始nodejs系列文章
- Node.js开发框架Express4.x
- Node.js中的文件系统(FS)