Node.js NPM安装时使用--save key

Node.js NPM安装时使用--save key,node.js,npm,Node.js,Npm,我正在学习节点,阅读后仍然不明白为什么应该(或不应该)使用键--save或--save dev事件 好的,我知道在npminit之后出现了package.json。我真的需要这个文件吗 接下来,在这个文件中有两个部分,比如dependenciesDev或dependenciesDev。我知道最后一个指定了仅在应用程序开发时使用的模块。但是为什么我要在依赖项部分添加一些内容呢?例如,我想使用react loopback,但在指定的文档中,应该在不保存依赖项的情况下安装它(即不使用--save键,只

我正在学习节点,阅读后仍然不明白为什么应该(或不应该)使用键
--save
--save dev
事件

好的,我知道在
npminit
之后出现了
package.json
。我真的需要这个文件吗

接下来,在这个文件中有两个部分,比如
dependenciesDev
dependenciesDev
。我知道最后一个指定了仅在应用程序开发时使用的模块。但是为什么我要在
依赖项部分添加一些内容呢?例如,我想使用
react loopback
,但在指定的文档中,应该在不保存依赖项的情况下安装它(即不使用
--save
键,只需
npm install react loopback
)。为什么?

最后:我应该如何决定在
package.json中保存什么以及不保存什么?

--save
用于作为应用程序一部分的nodejs依赖项,
--save dev
用于加载不属于应用程序一部分但在开发时需要的开发依赖项


一个很好的例子是
express
包是一个应用依赖性,因为它是应用程序的一部分,而
gulp/grunt
包是一个开发依赖性,因为它是应用程序开发和构建所需的,但在运行
npm安装--save
--save dev

  • npm将在/node\u modules/目录中保存npm包的副本
  • npm将在package.json中写入npm包名称和版本
  • 当您的节点应用程序需要/导入代码中的模块时,它将使用/node\u modules/中的副本。否则它将继续递归地在父目录中查找

npm安装--保存

运行
npm安装--当它是运行时节点应用程序所需的npm包时,保存
。
当有一些部署平台(如Heroku)只安装package.json上列出的依赖项时,这将非常有用。在这种情况下,您必须向Heroku发送已经预构建的捆绑包,因为它不会安装devdependency

快递、请求、伐木工人


npm安装--保存开发人员

运行
npm安装——保存dev
,只用于构建客户端javascript文件包或运行单元测试所需的工具等


例如,React、eslint、mocha、babel

You package.json允许您指定项目的所有依赖项,而无需在代码库中实际提供它们。这在使用版本控制(例如git或svn)时非常有用,因为这样您就不必将它们添加到存储库中。每个克隆您的项目的人只需执行“npm安装”就可以了。@puelo明白了。但是为什么有些软件包说应该在不保存依赖项的情况下安装它呢?只是在编写文档时错过了这个?或者故意省略?文档中没有提到
--save
的原因可能是他们假设开发人员自己知道。可能重复感谢您的澄清,我只是对您提到的DevDependence之间的React有点混淆。如果未在
依赖项中指定,则一旦应用程序部署到Heroku,它将不可用。你能澄清一下你的意思吗?它将在bundle.js中提供,因为浏览器不使用node_模块。浏览器使用bundle.js,其中包含单页应用程序所需的所有npm包。如果您在服务器端使用React进行渲染,那么您确实需要在依赖项中包含React,因为它将由您的节点应用程序使用