NPM 概述

npm:node.js的包管理工具

node.js默认集成了npm。

官网:https://www.npmjs.com/

文档:https://docs.npmjs.com/

 

使用NPM

版本查看

npm -v

 

创建npm模块

目录内初始化模块:

npm init

模块初始化的过程中需要输入一些信息,如果偷懒可以一路回车。

 

若想快速创建,使用 -y 参数,表示使用默认配置。

npm init -y

 

npm install 安装第三方npm模块

帮助命令

npm install -h

 

可以看到如下使用信息:(https://docs.npmjs.com/cli/v7/commands/npm-install#save-exact  也可以看到)

npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <alias>@npm:<name>
npm install <git-host>:<git-user>/<repo-name>
npm install <git repo url>
npm install <tarball file>
npm install <tarball url>
npm install <folder>
 
aliases: npm i, npm add
common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional|--save-peer] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]

npm install 选项说明:

  • --save:install 默认不开启。选项默认为true,即默认开启该选项。即下载依赖包。
  • --save-dev: 下载开发依赖包。包名会被注册在package.json的devDependencies里面。
  • -g: 全局安装。

 

安装npm包

命令:

npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <alias>@npm:<name>
npm install <git-host>:<git-user>/<repo-name>
npm install <git repo url>
npm install <tarball file>
npm install <tarball url>
npm install <folder>

 

 

例:安装node.js 后端web开发框架:express

npm install express

 

install可以简写为i。

例:安装webpack相关node.js模块:

npm i webpack webpack-cli webpack-dev-server -D

 

例:对于一个从git上下载的新项目,要初始化项目依赖可以按照如下流程操作:

git clone xxx   ## 下载项目
npm install     ## 下载依赖
npm run dev

 

全局安装与本地安装

npm install express       # 本地安装
npm install express -g   # 全局安装

 

本地安装

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

 

全局安装

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

对于全局模块,Windows默认存放在C:\Users\Administrator\AppData\Roaming。

修改方式:

  1. 在nodejs的安装目录下新建node_global和node_cache文件夹
  2. 输入npm config set prefix "d:/nodejs/node_global",回车完成修改。可以输入npm list -global 查看修改设置后的路径。

 

如果希望具备两者功能,则需要在两个地方安装它或使用 npm link

 

项目依赖与开发依赖

项目依赖,即使用者在安装项目时会把其中的包一起下载下来。

--save 表示项目依赖。依赖信息会被写在package.json中的dependencies中。

 

开发依赖,即开发测试时要用到的模块, npm install并不会下载开发依赖的包。

--save-dev 表示开发依赖。依赖信息会被写在package.json中的devDependencies中。

 

升级NPM

使用install升级npm版本

npm install npm -g

 

输入 npm install npm@latest -g 安装最新版本,回车等待完成安装。

输入 npm install npm@next -g 将安装官方最新的测试版本。

 

 

查看已安装的列表

查看所有安装的模块:

# 全局
npm list -g

# 本地
npm list

 

 

查看某个模块的版本号:

# 查看全局的某个模块
npm list -g electron

# 查看本地的某个模块
npm list grunt

 

 

 

卸载模块

# 全局
npm uninstall -g <package>

# 本地
npm uninstall <package>

 

卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:

npm ls

 

更新模块

npm update express

 

搜索互联网上已发布的模块

npm search express

 可以直接使用: https://www.npmjs.com/ 进行搜索

 

注册用户

可以使用如下命令,用个人邮箱注册用户

npm adduser

 

发布模块

npm publish

 

npm script

npm script可以用来方便的集成命令行。定义在package.json的packages中。

使用npm run来运行script。

例:定义build命令。

{
  "name": "ts_in_action",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "clean-webpack-plugin": "^3.0.0",
    "html-webpack-plugin": "^4.5.0",
    "webpack": "^5.4.0",
    "webpack-cli": "^4.2.0",
    "webpack-dev-server": "^3.11.0",
    "webpack-merge": "^5.3.0"
  },
  "dependencies": {
    "ts-loader": "^8.0.11",
    "typescript": "^4.0.5"
  }
}

构建模块

npm run build

 

 

其他常用命令

除以上命令外,NPM还提供了很多功能,package.json里也有很多其它有用的字段。更多内容可以在npmjs.org/doc/查看官方文档查阅。

补充一些NPM常用命令。

NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。

  • NPM提供了很多命令,例如installpublish,使用npm help可查看所有命令。

  • 使用npm help <command>可查看某条命令的详细帮助,例如npm help install

  • package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。

  • 使用npm update <package>可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。

  • 使用npm update <package> -g可以把全局安装的对应命令行程序更新至最新版。

  • 使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。

  • 使用npm unpublish <package>@<version>可以撤销发布自己发布过的某个版本代码。

 

 

模块版本号

使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码。

语义版本号分为X.Y.Z

分别代表:

  • 主版本号:如果有大变动,向下不兼容,需要更新X位。
  • 次版本号:如果是新增了功能,但是向下兼容,需要更新Y位。
  • 补丁版本号:如果只是修复bug,需要更新Z位。

当代码变更时,版本号按以下原则更新。

 

符号:~ 与 ^

  • ~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
  • ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0

可以参考:https://stackoverflow.com/questions/22343224/whats-the-difference-between-tilde-and-caret-in-package-json

 

 

package.json

package.json 位于模块的目录下,用于定义包的属性。

 

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 - 关键字

 npm基础

 

 

 

 

NPM使用淘宝镜像

输入npm config set registry=http://registry.npm.taobao.org,回车完成修改。输入npm config list 可以查看所有配置。

显示的配置中可看到如下配置 

; userconfig C:\Users\Administrator\.npmrc
cache = "D:\\nodejs\\node_cache"
prefix = "D:\\nodejs\\node_global"
registry = "http://registry.npm.taobao.org/" 

可以打开C:\Users\Administrator\.npmrc此路径查看我们刚才设置的几项配置。

检查镜像是否配置成功,输入npm config get registry,可以看到我们刚才配置的http://registry.npm.taobao.org/

 

使用淘宝cnpm

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

接下来就可以使用cnpm安装模块了

cnpm install [name]

 

 

参考资料

https://www.runoob.com/nodejs/nodejs-npm.html

https://www.cnblogs.com/wlays/p/10994119.html

相关文章:

  • 2022-12-23
  • 2021-07-07
  • 2021-12-26
  • 2022-12-23
  • 2021-11-22
  • 2021-11-22
  • 2022-01-06
  • 2022-01-02
猜你喜欢
  • 2022-01-24
  • 2022-12-23
  • 2022-12-23
  • 2021-10-09
  • 2022-12-23
  • 2021-07-16
相关资源
相似解决方案