Node.js Package Manager Part I - Package.json fields & Sematic Version

Introduction

成熟的编程语言一般都有相应的包管理工具,比如说 Python 中的 pip,Java 中的 Maven,PHP 中的 composer 等等。
对于 Node.js 来说,可选择的包管理工具比较多,比较有名的包括 npm,yarn 和 pnpm。
作为 Node.js 包管理系列文章的第一篇,这里先简单介绍 package 及其相关的周边内容

Package & Module

package 和 module 是相对的概念,官方文档上是这么定义的:

A package is a file or directory that is described by a package.json file. A package must contain a package.json file in order to be published to the npm registry.

A module is any file or directory in the node_modules directory that can be loaded by the Node.js require() function
可以看出来 package 和 module 相互纠缠,相互包含,共同组成了 Node.js 的生态

Read more