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