小编典典

Grunt、NPM 和 Bower 之间的区别( package.json 与 bower.json )

all

我是使用 npm 和 bower 的新手,在 emberjs 中构建我的第一个应用程序 :)。
我确实对rails有点经验,所以我熟悉用于列出依赖项的文件的想法(例如bundler Gemfile)

问题:当我想添加一个包(并将依赖项签入 git)时,它属于哪里 - intopackage.json或 into bower.json

据我所知,
运行bower install将获取包并将其放入/vendor目录中,
运行npm install它将获取它并将其放入/node_modules目录中。

这个 SO 答案说 bower 用于前端,而 npm用于后端。 乍一看, Ember-app-kit似乎坚持这种区别......但是 gruntfile中用于启用某些功能的说明给出了两个明确的命令,所以我在这里完全感到困惑。

直觉上我会猜到

  1. npm install –save-dev package-name 相当于将包名添加到我的 package.json

  2. bower install –save package-name 可能与将包添加到我的 bower.json 并运行 bower install 相同?

如果是这种情况,我什么时候应该像这样显式安装软件包而不将它们添加到管理依赖项的文件中(除了全局安装命令行工具)?


阅读 139

收藏
2022-03-06

共1个答案

小编典典

2016 年年中更新

事情变化如此之快,以至于如果到了 2017 年底,这个答案可能不再是最新的了!

初学者很快就会迷失在构建工具和工作流程的选择上,但 2016 年最新的东西是根本不使用 Bower、Grunt 或 Gulp!在 Webpack
的帮助下,你可以直接在 NPM 中做任何事情!

  • 谷歌“npm 作为构建工具”结果: https ://medium.com/@dabit3/introduction-to-using-npm-as-a-build-tool-b41076f488b0#.c33e74tsa

  • 网页包: https ://webpack.github.io/docs/installation.html

不要误会我的意思,人们使用其他工作流程,我仍然在我的遗留项目中使用
GULP(但慢慢退出它),但这是在最好的公司中完成的,并且在这个工作流程中工作的开发人员赚了很多钱!

看看这个模板,它是一个非常最新的设置,包含最好的和最新的技术: https ://github.com/coryhouse/react-
slingshot

  • 网页包
  • NPM 作为构建工具(没有 Gulp、Grunt 或 Bower)
  • 与 Redux 反应
  • ESLint
  • 清单很长。去探索吧!

你的问题:

当我想添加一个包(并将依赖项签入 git)时,它属于哪里 - 到 package.json 或 bower.json

  • 现在一切都属于 package.json

  • 构建所需的依赖项位于“devDependencies”中,即npm install require-dir --save-dev(–save-dev 通过向 devDependencies 添加条目来更新您的 package.json)

  • 您的应用程序在运行时所需的依赖项位于“依赖项”中,即npm install lodash --save(–save 通过向依赖项添加条目来更新您的 package.json)

如果是这种情况,我什么时候应该像这样显式安装软件包而不将它们添加到管理依赖项的文件中(除了全局安装命令行工具)?

总是 。只是因为舒服。当您添加标志 (--save-dev--save) 时,管理 deps (package.json)
的文件会自动更新。不要通过手动编辑其中的依赖项来浪费时间。is 的快捷方式和npm install --save-dev package-nameis
npm i -D package-name快捷npm install --save package-name方式npm i -S package-name

2022-03-06