node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > Node.js npm

Node.js管理工具npm的具体使用

作者:阳光_你好

NPM是随同NodeJS一起安装的包管理工具,允许用户从NPM服务器下载别人编写的第三方包到本地使用,本文主要介绍了Node.js管理工具npm的具体使用,感兴趣的可以了解一下

1.npm用途说明

我们在写node.js项目的时候npm工具是避免不的,那么我们如何使用该工具去管理包文具呢?首先我们先介绍npm工具的几种用途:

2.npm的安装及使用

2.1 npm安装

node.js很早的版本就已经集成了npm工具,如果你安装好了node.js,那就不用单独安装npm。我们通过"npm -v”来查看以下版本:

$ npm -v
6.13.4

如果你想使用新的npm版本,可以使用如下命令来更新:

sudo npm install npm -g # Linux平台

npm install npm -g # windows平台

你也可以使用国内淘宝镜像源更新或者下载包:

npm install -g cnpm --registry=https://registry.npmmirror.com

2.2 npm使用

如果我们要使用npm 命令安装urllib,我们可以用下边命令:

npm install urllib      # 本地安装 
npm install usllib -g   # 全局安装

2.2.1 本地安装

将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。

npm install urllib      # 本地安装 

2.2.2 全局安装

将安装包放在 /usr/local 下或者你 node 的安装目录。

npm install usllib -g   # 全局安装

2.2.3 模块卸载

$ npm uninstall usllib

2.2.4 模块更新

$ npm update usllib

2.2.5 模块搜索

$ npm search usllib

2.2.6 模块创建

创建模块,package.json 文件是必不可少的。我们可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (node_modules) runoob                   # 模块名
version: (1.0.0) 
description: Node.js 测试模块(www.runoob.com)  # 描述
entry point: (index.js) 
test command: make test
git repository: https://github.com/runoob/runoob.git  # Github 地址
keywords: 
author: 
license: (ISC) 
About to write to ……/node_modules/package.json:      # 生成地址

{
  "name": "runoob",
  "version": "1.0.0",
  "description": "Node.js 测试模块(www.runoob.com)",
  ……
}


Is this ok? (yes) yes

以上的信息,你需要根据你自己的情况输入。在最后输入 “yes” 后会生成 package.json 文件。

接下来我们可以使用以下命令在 npm 资源库中注册用户(使用邮箱注册):

$ npm adduser
Username: myname
Password:
Email: (this IS public) myname@email.com

接下来我们就用以下命令来发布模块:

$ npm publish

如果你以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。

2.2.7 模块创建

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。
版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如"argv": "0.0.x"表示依赖于0.0.x系列的最新版argv。

NPM支持的所有版本号范围指定方式可以查看官方文档。

2.3 查看安装信息

可以使用以下命令来查看所有全局安装的模块:

$ npm list urllib #(在本地项目查看rullib)
root@ /home/kyland/webviz
└── (empty)

$ npm list urllib -g  #(在全局查看rullib)
/home/kyland/.nvm/versions/node/v10.19.0/lib
└─┬ cnpm@9.2.0
  ├─┬ npm-request@1.0.0
  │ └── urllib@2.41.0 
  ├─┬ npminstall@7.11.1
  │ └── urllib@3.19.3  deduped
  └── urllib@3.19.3 
$ npm list -g
.nvm/versions/node/v10.19.0/lib
├─┬ @angular/cli@17.0.1
│ ├─┬ @angular-devkit/architect@0.1700.1
│ │ ├── @angular-devkit/core@17.0.1 deduped
│ │ └─┬ rxjs@7.8.1
│ │   └── tslib@2.6.2
│ ├─┬ @angular-devkit/core@17.0.1
│ │ ├─┬ ajv@8.12.0
│ │ │ ├── fast-deep-equal@3.1.3
│ │ │ ├── json-schema-traverse@1.0.0
│ │ │ ├── require-from-string@2.0.2
│ │ │ └─┬ uri-js@4.4.1
│ │ │   └── punycode@2.3.1
│ │ ├─┬ ajv-formats@2.1.1
│ │ │ └── ajv@8.12.0 deduped
│ │ ├── jsonc-parser@3.2.0 deduped
│ │ ├── picomatch@3.0.1
│ │ ├── rxjs@7.8.1 deduped
│ │ └── source-map@0.7.4
...

2.4 package.json的使用

package.json 位于模块的目录下,用于定义包的属性。接下来让我们来看下 express 包的 package.json 文件,位于 node_modules/express/package.json 内容:

{
  "name": "root",
  "private": true,
  "devDependencies": {
    "@babel/cli": "^7.1.5",
    "@babel/core": "^7.2.0",
    "@babel/plugin-proposal-class-properties": "^7.2.1",
    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.7.4",
    "@babel/plugin-proposal-object-rest-spread": "^7.2.0",
  },
  "scripts": {
    "bootstrap": "npm install && lerna bootstrap --hoist \"{react,react-dom}\" -- --legacy-peer-deps",
  },
  "dependencies": {
    "dd-trace": "^2.2.0",
    "node-sass": "^4.14.1"
  }
}

package.json 属性说明

2.5 npm常用命令

到此这篇关于Node.js管理工具npm的具体使用的文章就介绍到这了,更多相关Node.js npm内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文