NPM 入门使用1

简介: NPM 入门使用

前言

NPM (Node Package Manager) 是一个第三方 Node 包管理工具,一个包就是一个 Node 应用。

本文主要讲解 npm 的一些入门知识,主要包括 npm 包的安装、使用、卸载、发布、更新等内容。

1. npm 包

执行 npm 指令安装所需的包:

  • windows:
npm i -g npm@x.x.x
  • Mac:
sudo npm i -g npm@x.x.x

i 是 install 的简写,表示安装。

-g 是 --global 的简写,表示在全局安装,而非固定于某个文件夹或工程。

npm@x.x.x 表示安装的包是 npm,版本号是 x.x.x 。

2. package.json

mkdir npm-demo
cd npm-demo
npm init -y

mkdir: 创建文件夹; cd: 进入文件夹;

npm init -y / npm init --yes: 初始化一个 package.json,里面包含了关于当前应用程序的基本信息。

注意:在你添加任何模块到 node 前,都需要通过上述方式先创建一个 package.json 文件!

3. 包的安装

这里我们安装一个 underscore 库。

npm i underscore --save
npm i underscore

以上两种写法最后的效果是一样的,--save 这个 flag 表示会把包的名字加入到依赖中。(dependencies)

但现在不写这个 flag, 也会把包的名称加入到依赖中。

4. 包的使用

在主目录新建一个 index.js 文件。

// index.js
const _ = require('underscore');
const results = _.contains([1, 2, 3], 2);
console.log(results); // true

注意:require(path) 查找对应文件的顺序是 Core Module => File or folder => node_modules

  • 假设要查找的是以下文件,则会按照注释中的规则来查找:
// example
const uploader = require('./uploader'); // ./uploader.js or ./uploader/index.js

不过实际情况可能比这复杂,如果找不到js文件,它还会查找 json 文件等等。

5. 依赖库

通过 npm 可以下载很多依赖库,如何查看?

ls node_modules/
  • 一个包实际上就是一个应用,所有应用的依赖以及它所依赖的库都保存在 node_modules 中。
  • 另外,如果两个包或多个包同时依赖了同样的库,但是版本不一样。那么它们的依赖将各自保存在自身的文件夹中。

6. 源码控制

node_modules 文件夹的体积会随着项目的发展而不断变大,而实际上我们不想每次都把它提交到仓库,怎么办?那就直接忽略它好了。

那么如何恢复呢?所有下载的包的名字都会在 package.json 中保存下来,所以即便 node_modules 文件夹被删除了也没关系,只要在终端内输入 npm i 就会把依赖重新全部下载下来。

刚刚我们提到,可以在使用 Git 提交代码时,忽略 node_modules 文件夹的提交,那么如何忽略它?

  1. 初始化一个仓库:
git init

查看 master 分支(也就是主分支)下的文件状态,此时会发现未被提交的列表中含有 node_modules/

git status
  1. 添加 .gitignore 文件:
// .gitignore
node_modules/

重新查看 master 分支的状态:

git status

此时再去提交代码,就不会再把 node_modules/ 提交上去了。

7. 语义化版本控制 (SemVer: Semantic Versioning)

// package.json
{
  "name": "npm-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mongoose": "^5.13.1",
    "underscore": "^1.13.1"
  }
}

其中,dependencies 字段表示当前应用所依赖的库。

7.1 三组数字

例如,第一项 mongoose: "^5.13.1",^ (Caret) 后包含3组数字,中间用.隔开。

  • 分别表示:主要版本号.次要版本号.补丁号 (Major.Minor.Patch)
  • 当修复一个 bug 后,版本号应该为:5.13.2,即补丁号 + 1;
  • 当添加了新的特性且没有破坏现有的接口设置,版本号应该为:5.14.0,即次要版本号 + 1;(如果发现 bug,那么补丁号也会相应增加。)
  • 当添加了新的特性且破坏了现有应用的依赖关系,版本号应该为:6.0.0,即主要版本号 + 1.

7.2 数字前的符号

^5.13.1:告诉 npm 关注当前依赖的任何版本更新,只要主要版本号不变,这里是 5。也就是说,此时如果次要版本号和补丁号发生变化就会下载新的包。

5.13.1:无符号时,等价于 5.x,保持为固定版本。

~5.13.1:波浪线等价于 5.13.x,补丁号不固定,如果有 bug 修复并更新,那么也会让你的应用保持为最新的状态。

8. 列举已安装的依赖库版本

带符号的依赖都会及时更新为新版本,那么如何查看到底更新到哪个版本了呢?

进入 node_modules 文件夹,找到对应的依赖下的 package.json 文件,里面有个 version 字段,就是当前安装的版本。当需要查看的依赖很多时,这种一个一个点开看的方式就会显得很麻烦。

用命令行的方式:

  • 查看并列出所有依赖库的版本:
npm list
  • 查看并列出第一层的依赖库版本:
npm list --depth=0

如果要查看其他层级,改变 --depth=x 中的 x 即可。

目录
相关文章
|
5月前
NPM 制作命令行工具 - 入门案例
NPM 制作命令行工具 - 入门案例
31 0
|
9月前
NPM 制作命令行工具 - 入门案例
NPM 制作命令行工具 - 入门案例
44 0
|
10月前
|
JSON JavaScript 前端开发
NPM 入门使用2
NPM 入门使用2
72 0
|
JavaScript 前端开发
|
资源调度 应用服务中间件 Linux
npm私服安装教程 - verdaccio 入门
笔者安装的是 verdaccio@3.2.0,需要 node > 6.12.0, npm >=3.x 我们使用 pm2 来管理进程,需要全局安装 pm2
422 0
|
29天前
|
网络安全 计算机视觉
【node】 npm install 报错:code 128
【node】 npm install 报错:code 128
39 1
|
2月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
93 1
|
2月前
|
JavaScript 内存技术
node与npm版本对应关系以及使用nvm管理node版本
node与npm版本对应关系以及使用nvm管理node版本
352 0
|
4月前
|
JavaScript
node.js 项目中执行 npm install 命令后看到的 idealTree inflate 的含义
node.js 项目中执行 npm install 命令后看到的 idealTree inflate 的含义
221 0
|
1天前
|
资源调度 JavaScript Linux
nvm, node.js, npm, yarn 安装配置
nvm, node.js, npm, yarn 安装配置
17 1

推荐镜像

更多