这是我第一次开发 AngularJS 应用程序并使用脚手架工具 Yeoman ( http://yeoman.io/ )。我想对我的一些图标使用 fontawesome ( http://fortawesome.github.io/Font-Awesome/ ),并且我知道我应该使用该命令
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 install、npm install 和 grunt 命令,以便我清楚地了解差异并理解流程?谢谢。
最佳答案
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
bower 不需要咕噜声。 grunt 不需要 bower 。 grunt 不需要 grunt-font-awesome-vars 但 grunt-font-awesome-vars 需要 grunt。
根据我的工作流程,我使用 npm 来管理我想通过 grunt 自动化的包依赖项。我使用 Bower 来管理客户端依赖项的版本。
更多信息:
当有人问起 Bower 和 npm 之间的区别时,我会想到“Yo, Dawg”来形容它。
"Yo, Dawg. We heard you really like packages so we installed a package manager inside your package manager."
基本上,bower 只是另一个包管理器。它与 npm(这是一个单独的包管理器)一起安装
我使用 npm 来管理工具和服务器依赖项(例如 grunt、grunt 模块、sass 等...我可能想要自动化的东西),并使用 Bower 来管理功能性、客户端特定依赖项(例如Angular、jquery 等...我可能想要与当前版本保持同步的东西)
通过 Bower 安装将使用您的 Bower.json。通过 npm 安装将利用您的 package.json。
npm install grunt-font-awesome-vars --save-dev
将安装 grunt-font-awesome-vars 以及使用 devDependency 更新您的 package.json ( --save-dev 标志可以做到这一点),以便您随时自动安装它执行
npm install
如果您将该命令更改为
npm install grunt-font-awesome-vars -g
它将把 grunt-font-awesome-vars 安装到您的节点安装位置(由您的 PATH 系统变量指示)并可供所有节点实例使用。
编辑以回答评论中的问题
Asked: Also, why is there the need to have the install command as '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-server 可执行文件必须位于您要运行它的目录中。我全局安装它,这样我就不必再次“npm install”它。大多数您想要与项目打包的事情都可以使用 --save 标志而不是 -g (或 --global ...它们做同样的事情)标志来完成。
关于angularjs - Yeoman Bower 安装 vs npm 安装 vs grunt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24915899/