npm基本命令

npm是什么

Npm(Node Package Manager) 是node的包管理工具,是用JavaScript写出来的工具 ,被内置进了node中

npm的组成

组成简介
网站网站 是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径
注册表(registry)注册表 是一个巨大的数据库,保存了每个包(package)的信息
命令行工具 (CLI)CLI 通过命令行或终端运行。开发者通过 CLI 与 npm 打交道
npm服务器用于存储所有的npm包

npm有什么用

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用

Node.js 安装配置链接(Node.js中内置有npm)

https://jingyan.baidu.com/article/c85b7a64b6498c003aac956a.html

npm中文文档

https://www.npmjs.com/ 官网
https://www.npmjs.com.cn/ 中文文档

检测是否成功安装npm
npm -v		
6.4.1		//安装成功会返回这个版本号
使用 npm 命令安装模块
npm install <Module Name>		//<Module Name>指的是模块名
全局安装与本地安装

npm 的包安装分为本地安装(local),全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如

npm install <Module Name>         # 本地安装
npm install <Module Name> -g      # 全局安装
// install可以缩写为i

如果出现以下错误:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

解决办法为:

npm config set proxy null
本地安装
  • 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录)如果没有 node_modules 目录,会在当前执行npm 命令的目录下生成node_modules 目录
  • 可以通过 require() 来引入本地安装的包
全局安装
  • 将安装包放在 /usr/local 下或者你 node 的安装目录
  • 可以直接在命令行里使用
查看模块的版本号
npm <Module Name> grunt
安装指定版本

npm install 默认安装最新版本,如果想要安装指定版本,可以在库名称后加 @版本号

npm install <Module Name>@latest
npm install <Module Name>@0.1.1
npm install <Module Name>@">=0.1.0 <0.2.0"
卸载模块

我们可以使用以下命令来卸载 Node.js 模块

npm uninstall <Module Name>

建议直接删除node-modules文件夹

更新模块
npm update <Module Name>

更新升级时应该把原本的node-modules文件夹删除,不然的话可能会报错

查看模块信息
npm  list  <Module Name>
查看模块地址
npm view <Module Name> repository.url

很多包的地址都是托管在github上

查看帮助信息
npm help
验证某个模块是否存在

发布一个npm包的时候,需要检验某个模块是否已存在

 npm search  <Module Name>

如果存在就会显示其完整信息
在这里插入图片描述

搜索模块
npm search  <Module Name>

Package.json

package.json是一个描述文件,描述了你项目中各个包之间的关系,作用如下

  1. 作为一个描述文件,描述了你的项目依赖哪些包
  2. 允许我们使用 “语义化版本规则”指明你项目依赖包的版本
  3. 让你的构建更好地与其他开发者分享,便于重复使用
创建package.json
npm init	 //即可在当前目录创建一个 package.json 文件
cnpm init    //使用淘宝镜像创建

输入 npm init 后会弹出一堆问题,我们可以输入对应内容,也可以使用默认值。在回答一堆问题后输入 yes就会生成 package.json 文件,如果嫌回答这一大堆问题麻烦,可以直接输入 npm init --yes 跳过回答问题步骤,直接生成默认值的 package.json 文件

npm init --yes 		//跳过回答问题步骤,直接生成默认值的 package.json 文件

这里要注意,你通过npm安装的话,就只有使用npm init 时才会有默认值,使用cnpm init时不会有默认值的

package.json 的内容

package.json 文件至少要有两部分内容:

{
  "name": "w1807-demo-package",			//全部小写,没有空格,可以使用下划线或者横线
  "version": "1.0.0"		//x.x.x 的格式,符合“语义化版本规则”
}

其他内容:

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

我们可以为 init 命令设置一些默认值,比如:

> npm set init.author.email "邮箱@qq.com"
> npm set init.author.name "姓名"
> npm set init.license "MIT"		//这里是指开源协议

在这里插入图片描述

指定依赖的包

我们需要在 package.json 文件中指定项目依赖的包,这样别人在拿到这个项目时才可以使用 npm install 下载,包有两种依赖方式:

  • dependencies:在生产环境中需要用到的依赖
  • devDependencies:在开发、测试环境中用到的依赖
{
    "name": "my-weex-demo",
    "version": "1.0.0",
    "description": "a weex project",
    "main": "index.js",
    "author": "fkysly@gmail.com",
    "license": "MIT",
    "devDependencies": {
        "babel-core": "^6.14.0",
    },
    "dependencies": {
        "weex-html5": "^0.3.2",
}
}

书写脚本命令scripts

通过脚本可以快速的批量的执行相关的命令
在这里插入图片描述

语义化版本规则

使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新

  • 如果只是修复bug,需要更新Z位
  • 如果是新增了功能,但是向下兼容,需要更新Y位
  • 如果有大变动,向下不兼容,需要更新X位
版本号规范即语义化规则的使用

作为使用者,我们可以在 package.json 文件中写明我们可以接受这个包的更新程度(假设当前依赖的是 1.0.4 版本):
如果只打算接受补丁版本的更新(也就是最后一位的改变),就可以这么写:

1.0
1.0.x
~1.0.4

如果接受小版本的更新(第二位的改变),就可以这么写:

1
1.x
^1.0.4

如果可以接受大版本的更新(自然接受小版本和补丁版本的改变),就可以这么写:

*
x

小结一下:
总共三种版本变化类型,接受依赖包哪种类型的更新,就把版本号准确写到前一位。即当前位就不写,或者写成x. 如果写了当前位,那就要在前面给上相关标识。默认我们安装的模块应该是接受小版本的更新的: ^版本号

根据package.json安装依赖包

命令:

npm install

默认会安装 package.json 中 dependencies 和 devDependencies 里的所有模块
命令:

npm install --production

将包信息写入到package.json

要将包信息写入到package.json文件中的两种方式

方式一:手动写入

添加依赖时我们可以手动修改 package.json 文件:,添加或者修改 dependencies,devDependencies 中的内容

方式二:使用安装参数

另一种更酷的方式是用命令行,在使用 npm install 时增加 --save 或者 --save-dev 后缀:

npm install <Module Name> --save 	
//表示将这个包名及对应的版本添加到 package.json的 dependencies

npm install <Module Name> --save-dev
//表示将这个包名及对应的版本添加到 package.json的 devDependencies

简写版

npm install -S
npm install -D
npm获取全局安装的默认目录
  npm config get prefix
npm设置全局安装的默认目录
  npm config set prefix “directory”

使用淘宝 NPM 镜像

大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像
你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步
你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

这样就可以使用 cnpm 命令来安装模块了:

cnpm install [name]
<think>嗯,用户让我介绍一下npm的常用命令。首先,我需要确定用户可能的使用场景。可能是一个刚接触Node.js的开发者,或者是有一定经验但想复习一下命令的人。用户可能需要基本命令列表,比如安装、初始化项目、运行脚本等等。 接下来,我得考虑用户的潜在需求。除了基本命令,他们可能还关心如何管理依赖,比如开发依赖和生产依赖的区别。或者他们可能遇到问题,比如版本冲突,这时候需要知道如何更新或卸载包。另外,用户可能对安全性问题感兴趣,比如审计依赖项,所以需要包括npm audit相关的命令。 还要注意是否需要解释每个命令参数,比如-g代表全局安装,或者-D是--save-dev的缩写。用户可能对快捷方式不太熟悉,所以明确说明这些参数会更好。此外,像npx这样的工具可能也需要提及,因为它与npm紧密相关,用于执行包中的命令。 另外,用户可能想知道如何发布自己的包,所以需要包括npm publish和版本管理的命令。还有,配置部分也很重要,比如设置镜像源来加速下载,这在某些地区可能特别有用。 需要确保结构清晰,分门别类,比如项目初始化、依赖管理、脚本执行、配置等,这样用户查找起来方便。同时,提供一些常见用例,比如如何修复漏洞,如何更新所有依赖,这些实用技巧能帮助用户解决实际问题。 最后,要提醒用户谨慎操作,比如使用-f参数强制删除可能需要权限,或者修改注册表源的风险。安全提示也是必要的,比如在删除node_modules前备份项目。</think>以下是 **npm 常用命令手册**,按使用场景分类整理: --- ### 一、基础操作 | 命令 | 作用 | 备注 | |------|-----|------| | `npm init` | 初始化项目 | 生成 package.json | | `npm init -y` | 跳过问答快速初始化 | 自动生成默认配置 | | `npm -v` | 查看npm版本 | 验证安装状态 | --- ### 二、依赖管理 | 命令 | 作用 | 参数说明 | |------|-----|---------| | `npm install` | 安装全部依赖 | 读取package.json | | `npm install <package>` | 安装生产依赖 | `--save` 或 `-S` (默认) | | `npm install <package> -D` | 安装开发依赖 | `--save-dev` | | `npm install <package> -g` | 全局安装 | 系统级命令行工具 | | `npm uninstall <package>` | 卸载依赖 | 自动更新package.json | | `npm update` | 更新所有依赖 | 遵守semver规则 | | `npm outdated` | 检测过期依赖 | 显示可更新版本 | --- ### 三、脚本执行 | 命令 | 示例 | 说明 | |------|------|-----| | `npm run <script>` | `npm run dev` | 执行package.json中的脚本 | | `npm test` | - | 快捷执行测试脚本 | | `npm start` | - | 快捷执行启动脚本 | | `npm exec <package>` | `npm exec vite` | 临时执行本地安装的包 | --- ### 四、版本控制 | 命令 | 作用 | 示例 | |------|-----|------| | `npm version patch` | 修订版本号 | 1.0.0 → 1.0.1 | | `npm version minor` | 次版本号 | 1.0.0 → 1.1.0 | | `npm version major` | 主版本号 | 1.0.0 → 2.0.0 | --- ### 五、实用工具 | 命令 | 说明 | 使用场景 | |------|-----|---------| | `npm list` | 查看依赖树 | `--depth=1` 限制层级 | | `npm audit` | 安全审计 | 检测漏洞依赖 | | `npm cache clean` | 清除缓存 | 解决安装异常 | | `npm repo <package>` | 浏览器打开仓库 | 查看源码 | | `npm docs <package>` | 打开文档站点 | 快速查阅文档 | --- ### 六、镜像配置 ```bash # 切换淘宝镜像 npm config set registry https://registry.npmmirror.com # 恢复官方源 npm config set registry https://registry.npmjs.org # 查看当前镜像源 npm config get registry ``` --- **典型工作流示例**: ```bash # 创建新项目 mkdir my-project && cd my-project npm init -y # 安装Vue相关依赖 npm install vue@next -S npm install @vitejs/plugin-vue -D # 运行开发服务器 npm run dev # 构建生产版本 npm run build ``` **注意**: 1. `package-lock.json` 会自动记录精确版本,建议提交到版本控制 2. 优先使用 `npm ci` 替代 `npm install` 在CI/CD环境中保证依赖一致性 3. 使用 `npx` 可直接运行本地未全局安装的命令(如 `npx vite build`)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值