提问者:小点点

save和save-dev之间的区别是什么?


以下之间的区别是什么:

npm install [package_name]

和:

npm install [package_name] --save

和:

npm install [package_name] --save-dev

这是什么意思?--save-dev关键字的实际效果是什么?


共3个答案

匿名用户

  • --save-dev用于保存包以用于开发目的。示例:单元测试,缩小。。
  • --save用于保存应用程序运行所需的包。

匿名用户

如果您在自己的项目上都尝试过--save--save-dev,它们之间的区别可能不会立即明显。所以这里有几个例子。。。

假设您正在构建一个使用moment包解析和显示日期的应用程序。您的应用程序是一个调度程序,因此它确实需要这个包才能运行,如:没有它不能运行。在这种情况下,您将使用

npm install moment --save

这将在您的Package.json中创建一个新值

"dependencies": {
   ...
   "moment": "^2.17.1"
}

当你在开发的时候,使用测试套件这样的工具确实很有帮助,可能需要茉莉花-核心和因果报应。在这种情况下,您将使用

npm install jasmine-core --save-dev
npm install karma --save-dev

这还将在您的Package.json中创建一个新值。

"devDependencies": {
    ...
    "jasmine-core": "^2.5.2",
    "karma": "^1.4.1",
}

您不需要测试套件在正常状态下运行应用程序,因此它是一个--save-dev类型依赖项,仅此而已。你可以看到,如果你不理解真正发生的事情,那是多么的难以想象。

直接取自NPM docs docs#dependencies

依赖关系

依赖项在将包名称映射到版本范围的简单对象中指定。版本范围是具有一个或多个以空格分隔的描述符的字符串。依赖项也可以用tarball或git URL来标识。

请不要将测试线束或Transpiler放在dependencies对象中。请参见下面的devDependencies。

即使在文档中,它也会要求您对诸如测试线束之类的模块使用--save-dev。

我希望这能有所帮助,而且很清楚。

匿名用户

默认情况下,NPM只是在node_modules下安装一个包。当您试图为应用程序/模块安装依赖项时,您需要首先安装它们,然后将它们添加到package.jsondependencies部分。

--save-dev将第三方包添加到包的开发依赖项中。当有人直接运行npm install安装您的软件包时,将不会安装该软件包。通常,只有当某人首先克隆您的源存储库,然后在其中运行npminstall时,才会安装它。

--save将第三方包添加到包的依赖项中。每当有人运行NPM安装包时,它将与包一起安装。

开发依赖项是那些仅在开发包时才需要的依赖项。这可以包括测试运行器,编译器,打包器等。这两种类型的依赖项都存储在包的package.json文件中。--save添加到dependencies--save-dev添加到devdependencies

可以在此处参考npm安装文档。

--

请注意,从NPM5开始,--save现在是默认选项。因此,不再显式地需要它。可以运行npm install而不使用--save,以获得相同的结果。