我刚开始使用NPM和Bower,在emberjs:)中构建了我的第一个应用程序.
我确实有一些使用Rails的经验,所以我熟悉用于列出依赖项的文件的概念(比如bundler Gemfile)

问题:当我想添加一个包(并将依赖项签入git)时,它属于哪里?是package.json还是bower.json

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

This SO answer says bower is for front-end and npm is for backend stuff.
Ember-app-kit seems to adhere to this distinction from the first glance... But instructions in gruntfile for enabling some functionality give two explicit commands, so I'm totally confused here.

凭直觉我会猜到

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

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

如果是这样的话,我应该在什么时候明确地安装这样的包,而不将它们添加到管理依赖关系的文件中(除了全局安装命令行工具)?

推荐答案

Update for mid 2016:

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

初学者可能会很快迷失在构建工具和工作流的 Select 中,但2016年最新的是根本不使用Bower、Grunt或Gulp!在网页包的帮助下,你可以直接在NPM中做任何事情!

别误会,人们使用其他工作流,我仍然在我的遗留项目中使用GULP(但慢慢退出),但最好的公司就是这样做的,在这个工作流中工作的开发人员赚了很多钱!

看看这个模板,它是一个非常最新的设置,由最好的和最新的技术组成:

  • 网页包
  • NPM作为构建工具(无gulp 、咕噜声或凉亭)
  • 对Redux做出react
  • 埃斯林特
  • 名单很长.go 探索吧!

您的问题:

当我想添加一个包(并将依赖项签入git)时,

  • 所有东西都应该打包.现在使用json

  • 构建所需的依赖项在"devDependency"中,即npm install require-dir --save-dev(--save-dev通过向devDependency添加一个条目来更新您的Package.json)

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

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

Always.只是为了舒适.当您添加一个标志(--save-dev--save)时,管理DEP的文件(Package.json)会自动更新.不要因为手动编辑其中的依赖项而浪费时间.npm install --save-dev package-name的快捷方式是npm i -D package-name,npm install --save package-name的快捷方式是npm i -S package-name

Javascript相关问答推荐

使用CDO时如何将Vue组件存储在html之外?

React:未调用useState变量在调试器的事件处理程序中不可用

D3多线图显示1线而不是3线

materialized - activeIndex返回-1

没有输出到带有chrome.Devtools扩展的控制台

扫描qr code后出错whatter—web.js

函数返回与输入对象具有相同键的对象

如何从html元素创建树 struct ?

如何从隐藏/显示中删除其中一个点击?

让chart.js饼图中的一个切片变厚?

Jest toHaveBeenNthCalledWith返回当前设置的变量值,而不是调用时的值

MongoDB受困于太多的数据

不同表的条件API端点Reaction-redux

Node.js错误: node 不可单击或不是元素

使用API调用的VUE 3键盘输入同步问题

如何在独立的Angular 应用程序中添加Lucide-Angel?

我的NavLink活动类在REACT-ROUTER-V6中出现问题

谷歌饼图3D切片

如何向内部有文本输入字段的HTML表添加行?

将匿名函数附加到链接的onClick属性