一文了解npm install -g和npm install --save-dev的关系

npm,install,save,dev · 浏览次数 : 7

小编点评

**npm install -g 和 npm install --save-dev 的关系** | 操作 | npm install -g | npm install --save-dev | |---|---|---| | 安装目录 | ./node_modules | /usr/local 下或 node 的安装目录 | | 依赖类型 | 全局安装 | 本地安装 | | 应用运行 | 可以正常运行依赖的包 | 开发应用时所依赖的工具包 | | peerDependencies | 应用运行依赖的宿主包 | 开发应用时所依赖的宿主包 | | bundledDependencies | 发布包时需要打包的依赖 | 很少见 | | optionalDependencies | 可选的依赖包 | 安装后可能会有新功能,例如图片解码库 |

正文

本文分享自华为云社区《npm install -g 和 npm install --save-dev 的关系》,作者: SHQ5785。

一、npm install 本地安装

  1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  2. 可以通过 require() 来引入本地安装包。

二、npm install -g 全局安装

  1. 将安装包放在 /usr/local 下或者 node 的安装目录。
  2. 可以直接在命令行里使用。

三、npm install --save

  1. 会把build包安装到node_modules目录中;
  2. 会在package.json的dependencies属性下添加build;
  3. 之后运行npm install命令时,会自动安装build到node_modules目录中;
  4. 之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中;

四、npm install --save-dev

  1. 会把msbuild包安装到node_modules目录中;
  2. 会在package.json的devDependencies属性下添加msbuild;
  3. 之后运行npm install命令时,会自动安装msbuild到node_modules目录中;
  4. 之后运行npm install --production或者注明NODE_ENV变量值为production时,不会自动安装msbuild到node_modules目录中;

五、package.json 中 dependencies 与 devDependencies 的区别

  • dependencies:

应用能够正常运行所依赖的包。这种 dependencies 是最常见的,用户在使用 npm install 安装包时会自动安装这些依赖。

  • devDependencies:

开发应用时所依赖的工具包。通常是一些开发、测试、打包工具,例如 webpack、ESLint、Mocha。应用正常运行并不依赖于这些包,用户在使用 npm install 安装包时也不会安装这些依赖。

  • peerDependencies:

应用运行依赖的宿主包。最典型的就是插件,例如各种 jQuery 插件,这些插件本身不包含 jQeury,需要外部提供。用户使用 npm 1 或 2 时会自动安装这种依赖,npm 3 不会自动安装,会提示用户安装。

  • bundledDependencies:

发布包时需要打包的依赖,似乎很少见。

  • optionalDependencies:

可选的依赖包。此种依赖不是程序运行所必须的,但是安装后可能会有新功能,例如一个图片解码库,安装了 optionalDependencies 后会支持更多的格式。

那么 package.json 文件里面的 devDependencies 和 dependencies 对象有什么区别呢?

devDependencies 里面的插件(比如各种loader,babel全家桶及各种webpack插件等)只用于开发环境,不用于生产环境,因此不需要打包;而 dependencies 是需要发布到生产环境的,是要打包的。

 

点击关注,第一时间了解华为云新鲜技术~

 

与一文了解npm install -g和npm install --save-dev的关系相似的内容:

如何在现有的Vue项目中嵌入 Blazor项目?

目前官方只提供了angular和react俩种示例,所以本教程将来讲解如何在Vue的现有项目中使用,上期已经做好了react的教材! 准备流程 Vue 项目创建流程 使用Vue创建一个Demo项目 全部选择默认No即可 然后项目名称就用demo了 npm init vue@latest cd dem

第131篇:如何上传一个npm包

好家伙, NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 NPM是世界上最大的软件注册表。 1.首先我们去npm官网注册一个账号 (证明你是人....) 2.在本地创建一个新文件夹 最好和你的包同名 3.改

Element-ui源码解析(一):项目目录解析

开始看原码了,我们要开始一些准备工作, 既然是拆代码,那么我们要先把代码搞到手 1.如何下载原码 随便开个项目 npm i element-ui -S 将源码下载到本地 随后在node_modules中找到element-ui文件夹 开搞 2.目录结构解析 目录结构如下: 1.lib:该目录包含了

第132篇:npm第一次使用自己的包(package-lock.json、package.json文件作用说明)

好家伙, 1.新建一个文件夹,命名为test 2.下载包 npm i panghu-planebattle 空白的文件夹中多了两个文件 package-lock.json和package.json 说明: package.json文件 package.json是一个项目描述文件, 里面记录了当前项目

FAQ 关于pip你应该知道的一些技巧

pip简介 pip是安装了python之后的一个应用程序,包管理程序,有点类似于yum、npm、apt等工具 物理位置一般是python.exe所在目录下的scripts下 以我为例,我Python安装在D:\Python39\下,那么pip就在D:\Python39\Scripts 而这个工具所在

包管理工具npm和Yarn的区别,我们该如何选择?

好家伙,学习新工具 1.为什么我们需要包管理器? 关于npm我们已经知道了,这是我们项目的包管理器, 我们现在用的无比顺手的工具,都是在无数的竞争中杀出来的,他们淘汰了无数的产品 首先,倘若我们不使用npm,那么我们应该如何去新建一个前端项目? 纯手工,把我们项目需要的项目一个个下载到我们的项目里面

本地JS文件批量压缩

最近在维护一个小后台项目,有段JS需要压缩上传到CDN存储服务器。由于之前压缩的JS文件都比较少,都是手动压缩的。这次需要压缩的文件比较多,所以用了批量压缩。特此记录一下,方便大家和自己以后再用到的时候备忘。 v准备工作 安装nodejs 首先在本地安装node.js和npm,一般npm集成于nod

云间玉兔,自出机抒,从零开始制作Web插件网页特效小兔子组件(小挂件widget),基于原生CSS/NPM

著意登楼瞻玉兔,何人张幕遮银阙?又到了一年一度的网页小挂件环节,以往我们都是集成别人开源的组件,但所谓熟读唐诗三百首,不会做诗也会吟,熟读了别人的东西,做几首打油诗也是可以的,但若不能自出机抒,却也成不了大事,所以本次我们从零开始制作属于自己的网页小挂件,博君一晒。 玉兔主题元素绘制 成本最低的绘制

vue3项目实战+element-plus

记录自己搭建前端项目的学习过程和开发过程,希望一起学习进步 采用Vue3+element-plus+axios+vue-router+sass……(目前刚开始是用到了这些,随着开发慢慢更新) npm是比较慢的, 所以我用的是pnpm。安装指令:npm i pnpm 简单介绍下作用 Vue3:前端框架

React Router 6 快速上手

## 1.概述 1. React Router 以三个不同的包发布到 npm 上,它们分别为: 1. react-router: 路由的核心库,提供了很多的:组件、钩子。 2. **react-router-dom:** 包含react-router所有内容,并添加一些专门用于 DOM 的组件,例如