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月前
|
JavaScript 前端开发 开发者
npm入门介绍
npm install [包名] - 这是最常用的npm命令,用于安装一个或多个包。如果后面没有指定包名,则根据当前目录下的package.json文件安装所有依赖。 npm uninstall [包名] - 用于卸载已安装的包。 npm update [包名] - 更新一个或多个包到最新版本。 npm init - 通过问答的方式帮助你创建一个新的package.json文件,这是开始一个新项目的第一步。 npm run [脚本命令] - 运行package.json中定义的脚本命令。 npm publish - 如果你开发了自己的npm包,这个命令可以帮助你将包发布到npm仓库,
36 3
|
6月前
NPM 制作命令行工具 - 入门案例
NPM 制作命令行工具 - 入门案例
70 0
NPM 制作命令行工具 - 入门案例
NPM 制作命令行工具 - 入门案例
64 0
|
JSON JavaScript 前端开发
NPM 入门使用2
NPM 入门使用2
93 0
|
JavaScript 前端开发
|
资源调度 应用服务中间件 Linux
npm私服安装教程 - verdaccio 入门
笔者安装的是 verdaccio@3.2.0,需要 node > 6.12.0, npm >=3.x 我们使用 pm2 来管理进程,需要全局安装 pm2
484 0
|
5月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
331 3
|
1月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
31 0
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
该博客文章提供了解决在使用npm版本7.19.1时出现的"no such file or directory"错误的具体方法,建议通过降级npm到6.14.8版本来解决问题,并确认了该方法可以成功安装node_modules。
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
|
3月前
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】

推荐镜像

更多