npm,bower,gulp,Yeoman和grunt有什么好处?

Chr*_*ian 30 javascript npm tooling gruntjs bower

我是一个后端开发人员,对npm,bower,gulp,grunt和Yeoman有点困惑.每当我问某人他们的目的是什么时,答案往往归结为依赖经理 - 对所有人而言.当然,我们不需要四种不同的工具,它们都是一样的吗?

有人可以用尽可能少的句子来解释每个有益的东西- 如果可能的话,每个工具只使用一个,使用五岁的语言(具有开发技能)可以理解吗?

例如:

  • SVN存储,管理和跟踪源代码的变化

我过去曾经使用过maven,Jenkins,nexus和ant; 也许您可以将上述工具与这些工具进行比较?

也可以随意添加其他前端工具到列表中.

这是我到目前为止所发现的 - 不确定它是否正确,但是:

  • 前端开发/ JS库的bower依赖管理器使用平面依赖列表
  • node.js服务器的npm依赖管理器可以解析传递依赖/依赖树
  • grunt运行任务,就像Jenkins一样,但是命令行上的位置
  • Yeoman提供了脚手架,即骨架项目
  • gulp与grunt相同,但仅用js编写
  • js应用程序的node.js服务器?
  • git分散的SCM/VCS,与svn/cvs相对应

我接近了吗?:)

Mir*_*rko 44

你很近!欢迎使用JavaScript :)

让我给你一个简短的描述和大多数开发人员花一些时间的功能.

bower 重点关注浏览器中使用的包.每个都bower install <packagename>指向要包含的文件(更多可以下载).由于webpack,browserify和babel的成功,它作为一流的依赖管理器大多已经过时了.

2018年更新:凉亭基本上被弃用,以支持NPM

npm 历史上专注于NodeJS代码,但已经推翻了浏览器模块的bower.不要让任何人欺骗你:NPM是巨大的.NPM还会将许多文件加载到您的项目中,新的npm安装始终是酿造新咖啡的好理由.NPM易于使用,但由于参考版本的松散方式和模块发布的随意性,在更改环境时可能会破坏您的应用程序.研究收缩包装npm install --save-exact

2018年更新:NPM长大了!许多关于安全性和可重复性的改进已经实施.

grunt 促进任务自动化.Gulps年长,有点迟钝的兄弟.JavaScript社区过去常常在2014年和他一起出去玩.Grunt在某些地方已经被认为是遗产,但仍然有大量真正强大的自动化.对于更大的用例,配置可能是一场噩梦.虽然有一个grunt模块.

2018年更新:grunt大部分已过时.易于编写的webpack配置已经将其杀死.

gulp 和grunt一样但速度更快.

npm run-script 你可能根本不需要任务运行器.NodeJS脚本非常容易编写,因此大多数用例允许自定义任务自动化工作流程.使用npm run-script从package.json文件的上下文中运行脚本

webpack 不要错过webpack.特别是如果你对将JavaScript编写成连贯的模块化代码的许多方法感到迷茫.Webpack将.js文件打包成模块,并且非常出色.Webpack具有高度可扩展性,并且提供了良好的开发环境:webpack-dev-serverbabel一起使用,以获得迄今为止最佳的JavaScript体验.

Yeoman 脚手架.对于具有不同背景的团队而言极为宝贵,因为它为您的项目架构提供了可控的共同点.甚至还有一个支架脚手架.


小智 7

所以,既然你很清楚每个是什么,我会给你一个简单的工作流程.

  1. 我用自耕农来支撑一个基本的骨架.
  2. 我使用node作为我的应用程序的运行时.即.跑node appname
  3. 我使用npm来安装节点模块,以帮助我在节点中编写应用程序
  4. 我可能需要像bower这样的前端库中的一些组件,所以使用bower来获取这些组件.
  5. 现在要做一些重复性的任务,我将使用grunt或gulp来编写一些任务.所以每次我想重复它,比如说最小化我的js文件我叫grunt / gulp 并让它们做到.你问的差异,Gulp是基于流的,而grunt是基于任务的.
  6. 我使用git进行版本控制以跟踪更改