百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

npm简介

liuian 2025-02-07 18:21 32 浏览

1.1 npm的用途

NPM(node package manager),主要功能就是管理node包。

包括:安装、卸载、更新、查看、搜索、发布等。npm详细记录了每个包的信息(作者、版本、依赖、授权信息等)。是一个统一的代码包管理平台,解决了当项目依赖的代码越来越多,所维护的代码日益增加,所以需要以组件化的方式统一管理可复用的模块或工具。项目的结构清晰,减少模块的耦合低,增加开发的效率。需要变更的功能不用去维护所有项目的代码,只需维护 npm 上的版本,更新到每个项目,然后解决兼容并通过测试。

1.1.2 npm的安装

Node 已经内置了npm,所以只要安装 node 就自带了 npm

可以从Node官网安装,安装完后在控制台输入:

// 查看 node 版本
node -v
// 查看 npm 版本
npm -v

1.1.3 npm的更新

更新npm :

npm install -g npm

更新node版本:

  1. mac、linux:
// 先清除npm缓存:
npm cache clean -f


// 然后安装n模块:
npm install -g n


// 升级node.js到最新稳定版:
n stable


// 如果是mac升级出现错误,在命令前面加sudo
  1. windows:

windows 更新 node 比较简单,下载官方版本覆盖更新就行

1.2 npm的用法

1.2.1 安装包

// 本地安装
npm install <模块名称>
// 全局安装
npm install <模块名称> -g


// -dev的简写,配合package,安装到devDependencies中,推荐使用
npm install <模块名称> -D


// 同时安装多个包,模块名中间空格就行
npm install <模块名称> <模块名称> <模块名称> -D

全局安装和本地安装的区别主要是路径不同:

本地安装

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

全局安装

  • 安装包是放在 /usr/local 下或者你 node 的安装目录。
  • 可以直接在命令行里使用。

npm install 安装包时发生了什么?

安装之前,npm install会先检查,项目./node_modules目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。

如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f或--force参数。

npm install <模块名称> --force

npm 如何安装指定版本的包?

// npm 5.0.0以后的版本 --save 可以省略
npm install jquery@3.0.0 --save

1.2.2 查看安装包的信息

// 查看所有全局安装的模块
npm list -g
// 查看某个模块的版本号
npm list <模块名称>

模块目录下的 package.json 文件中包含了该模块的详细信息,用于定义包的属性:

  • name - 包名。
  • version - 包的版本号。
  • description - 包的描述。
  • homepage - 包的官网 url 。
  • author - 包的作者姓名。
  • contributors - 包的其他贡献者姓名。
  • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在node_module 目录下。
  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
  • keywords - 关键字

1.2.3 更新包版本

npm update <模块名称>

1.2.4 卸载包

npm uninstall <模块名称>

1.3package.json

1.3.1 npm依赖包版本号~和^和*的区别

  • ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
  • ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
  • * 这意味着安装最新版本的依赖包
"dependencies": {
  "axios": "^0.18.0",
  "xxx-ba": "*",
  "xxx-filter": "*",
  "xxx-util": "*",
  "vant": "^1.6.17",
  "vue": "^2.5.2",
  "vue-router": "^3.0.1",
  "vuex": "^3.1.0",
  "weixin-js-sdk": "^1.4.0-test"
},
devDependencies": {
    "ali-oss": "^6.0.1",
    "autoprefixer": "7.2.3",
    "babel-core": "6.26.0"
}

1.3.2 dependencies和devDependencies的区别

  • dependencies是运行时依赖,其中的包在可运行环境才会使用
  • devDependencies是开发时依赖,其中的包在开发环境才会使用

正如 1.2.1 中讲到的 --save 和 --save-dev,--save 是将包安装在dependencies下,--save-dev则是在devDependencies下。

什么情况需要devDependencies?

  • dependencies,在可运行环境,只需要我们能正常运行该项目所需要的模块, 比如vue,vue-router,express等等这些,项目没有这些依赖会出错
  • devDependencies,在开发环境中我们所做的单元测试,webpack,gulp,supervisor等这些工具,都只是在开发阶段需要,一旦项目投入使用便不再需要。

1.4 npm的缺陷

  1. 更新速度慢
  2. 拉取的包可能版本不同(.lock)
  3. 本地包支持比较落后(私有仓库)

解决方案

以上有些问题也不是不能解决,有一些另辟蹊径的方法可以避免。

类比yarn

安装速度:yarn 是同步执行所有包的下载,npm 是队列下载。所以随着安装包数量增多,yarn 的安装速度相对会更快。

相关推荐

电脑重装系统后没有声音怎么解决

电脑重装系统后没有声音,可能是声卡驱动未安装、声卡驱动不兼容或者声音相关服务未开启等原因。解决方法可以尝试重新安装声卡驱动、更新驱动程序软件或者打开声音相关设置。如果问题仍然存在,建议寻求专业人士的...

word2007安装产品密钥(安装office2010产品密钥)

可以通过以下方式获取Word文档的产品密钥:购买正版Word软件,从官方渠道获得产品密钥。下载并安装MicrosoftOffice,从安装过程中获取产品密钥。请注意,任何未经授权的方式获取...

绝地求生电脑配置要求(绝地求生电脑配置要求2024)
绝地求生电脑配置要求(绝地求生电脑配置要求2024)

绝地求生的最低配置国服官方给出的最低配置是内存6G,CPUInteli3-4340/AMDFX-630,显卡GTX660/HD7850,所有效果最低,但是说实话,这个配置玩起来,体验太差,而且没几局就需要重启客户端,而且GTX6...

2025-12-23 21:05 liuian

安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
亲手自己重装系统win7(自己怎么重装win7)

要一键安装重装系统Win7,您可以使用Windows7安装盘或USB驱动器。首先,将安装盘或USB插入计算机,并重启计算机。然后,在计算机启动时按下相应的按键(通常是F12或Del键)进入启动菜单。...

windows7旗舰版临时激活(win7暂时激活)

关于这个问题,目前,有几种方法可以激活Windows7旗舰版,以下是最简单的几种方法:1.使用激活工具:可以使用一些第三方激活工具,如KMSpico、MicrosoftToolkit等工具来激活...

免费查序列号入口(免费查序列号入口平板)

苹果查序列号入口可登陆苹果官网checkcoverage.apple.com进行查询,具体步骤如下:1、打开手机设置,点击“通用”;2、进入页面后点击“关于本机”;3、页面跳转后,我们就可以看到本机的...

磁盘被保护了如何取消保护(磁盘被保护了如何取消保护设置)

1、打开磁盘分区管理窗口中选择要去掉被写保护的磁盘。2、选中磁盘后单击鼠标右键可显示出选项列表下选择属性。3、打开磁盘属性对话框中选择点击硬件选项卡。4、然后在硬件页面中选中所有磁盘后再单击属性按钮。...

win7系统硬盘分区教程(win7如何对硬盘分区)

在Win7中,你可以使用磁盘管理工具来给硬盘分区。首先,打开控制面板,点击“系统和安全”,然后选择“管理工具”。在管理工具中,找到“计算机管理”,点击打开。在计算机管理窗口中,选择“磁盘管理”。在磁盘...

电脑不识别移动硬盘怎么办(笔记本电脑不识别移动硬盘怎么办)

电脑无法识别移动硬盘的原因有很多,以下是一些可能的原因和相应的解决方法:1.USB供电不足:移动硬盘功率较大,可能需要更多的电压。前置USB接口可能无法提供足够的电压。解决方法是将移动硬盘接到...

cf穿越火线烟雾头盔怎么调(cf的最新烟雾头盔怎么调)

cf新版烟雾保护头盔调置:?cf这款游戏中,更新后调整烟雾头的方法是打开NVIDIA控制面板,在NVIDIA控制面板中选择调整视频颜色设置,接着点击通过NVIDIA设置选项,然后将亮度调整到79%,对...

u盘怎样格式化最安全(u盘怎么格式化最干净)

只需将U盘插入到电脑之后,然后在我的电脑中找到U盘的盘符,使用鼠标右键点击打开菜单,其中就可以看到【格式化】的选项,根据需要选择然后点击【快速格式化】即可U盘格式是FAT32格式,那么其传输速度会明显...

移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)
移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)

1.打开手机设置,找到wifi点击进入,点击已连接的wifi。2.里面有一个路由器的选项,记住路由器后面一串数字。3.打开手机网页,在地址栏输入刚记住的那串数字,点击进入,选择继续访问网页版,输入管理员密码,点击确定。4.点击路由设置,点击...

2025-12-23 16:05 liuian

手机五笔输入法怎么使用(手机五笔怎么用新手教程)
手机五笔输入法怎么使用(手机五笔怎么用新手教程)

手机使用五笔输入法操作方法1、打开手机,点击应用商店,下载搜狗输入法,并安装。2、打开下载后的搜狗输入法,在打开页面勾选搜狗输入法,然后点击启用。3、在弹出页面,点击搜狗输入法。在编辑文字页面,点击如图所示按钮。4、在弹出页面,点击其他输入...

2025-12-23 15:55 liuian

天翼网关怎么设置wifi(天翼网关怎么设置wifi密码)

天翼网关设置wifi的方法步骤如下:首先打开浏览器,在地址栏中输入198.168.1.1,确定。输入用户名、密码,如果以前没改过,这个密码就在网关背面的标签上面,可以去查看一下,输入后点击“确定”。点...