Yeoman bower安装vs npm install vs grunt

时间:2014-07-23 16:24:11

标签: angularjs gruntjs npm yeoman bower

这是我第一次开发AngularJS应用程序并使用脚手架工具Yeoman(http://yeoman.io/)。我想在我的一些图标(http://fortawesome.github.io/Font-Awesome/)中使用fontawesome,我知道我应该使用命令

bower install fontawesome

但是,我也看到这篇文章(https://www.npmjs.org/package/grunt-font-awesome-vars)讨论了下面的npm grunt install命令

npm install grunt-font-awesome-vars --save-dev

那有什么区别?关于各种工具如何工作和流动,我仍然有点模糊。任何Yeoman专家都可以给我一个低位,什么时候使用bower安装,npm安装和grunt命令,所以我会清楚地知道差异并理解流程?谢谢。

1 个答案:

答案 0 :(得分:14)

Grunt 是一项任务自动化工具,开箱即用。它通过插入执行特定任务的grunt模块来完成大部分工作。

grunt-font-awesome-vars 是grunt的模块(没用grunt就没用了)

bower 是包经理。

npm 是包经理。

(我不会使用Yeoman。它是建立项目结构的脚手架工具。我不同意其对应该去哪里的意见,所以我不知道傻瓜。我手动配置grunt和bower)

又快又脏:

使用npm安装节点。 然后从你的控制台,(VS2013的开发人员命令提示,Bash或你使用的任何东西) 运行以下命令

npm install grunt --save
npm install bower --save
npm grunt-font-awesome-vars --save
凉亭并不需要咕噜咕噜。咕噜声并不需要凉亭。 grunt不需要grunt-font-awesome-vars,但是grunt-font-awesome-vars需要咕噜声。

通过我的工作流程,我使用npm来管理我想用grunt自动化的包依赖项。我使用bower来管理我的客户端依赖项的版本。

更多信息:

有" Yo,Dawg"描述当有人问起它和npm之间的区别时想到的凉亭。

  

"哟,道格。我们听说你真的喜欢包,所以我们安装了一个   包管理器内的包管理器。"

基本上,bower只是另一个包管理器。它与npm(这是一个单独的包管理器)一起安装

我使用npm来管理工具和服务器依赖(比如grunt,grunt模块,sass等......我可能希望自动化的东西)和bower for 功能,客户端特定的依赖(如angular,jquery等...我可能希望与当前版本保持同步的事情)

通过凉亭安装将使用您的bower.json。通过npm安装将使用你的package.json。

npm install grunt-font-awesome-vars --save-dev

将安装grunt-font-awesome-vars 以及使用devDependency(--save-dev标志这样做)更新你的package.json,以便在你任何时候自动安装它执行

npm install

如果您将该命令更改为

npm install grunt-font-awesome-vars -g

它会将grunt-font-awesome-vars安装到您的节点安装位置(由您的PATH系统变量指示),并且可供所有节点实例使用。

编辑以回答评论中的问题

  

问:另外,为什么需要将安装命令作为' grunt-font-awesome-vars -g'

grunt-font-awesome-vars是部署为节点包的grunt模块的名称。使用" npm install"安装grunt模块。命令。 -g是一个标志,指示npm将请求的包安装到全局空间,方法是通过PATH变量使其可用。我目前在全球安装的唯一东西是http-server,bower和karma。如果您没有在全球范围内安装软件包,那么您必须执行" npm install"在当前工作目录中的那个包,以便执行该包的命令。例如,http-server是一个节点模块,并且像任何其他控制台应用程序一样执行命令行。在这种情况下,命令" http-server"将在您想要为其提供服务的任何地方启动本地http服务器。如果我将它安装到我的PATH,我可以从任何我想要的地方运行http-server而无需做任何特别的事情。如果您不将其安装到PATH,则http服务器可执行文件必须位于您要运行它的目录中。我在全球范围内安装它,以便我永远不必安装" npm install"它再次。大多数事情你想要与你的项目打包,你可以用--save标志而不是-g(或--global ......它们做同样的事情)标志。