乐趣区

关于后端:npm-笔记

NPM

npm stands for “Node Package Manager”

包管理器能够把库,框架作为 Nodejs 模块引入。

package.json

package.json 文件是所有 Node.js 我的项目和 npm 包的枢纽,它存储我的项目的相干信息。它由单个 JSON 对象组成,并以键值对的模式存储我的项目信息,且至多蕴含两个必填字段:“name”和“version”——然而最好提供无关我的项目的其余信息,这将对用户或者维护者有所帮忙。

增加作者 Author

在这个文件中最常见的信息之一是 author 字段,它阐明了我的项目的创建者,它能够是字符串,也能够是带有联系人详细信息的对象。对于较大的我的项目,倡议应用对象;比方上面的例子:

"author": "Mitchell"

留神: 正在批改的是一个 JSON,所有的字段名必须用双引号(”)包裹,也必须用逗号(,)宰割。

增加形容 Description

一个残缺的 package.json 文件的下一部分就是 description 字段——简短精悍的的我的项目形容。

如果打算未来把这个包公布到 npm,请留神 description 字段的作用是告知用户这个包的用处,这样用户就能够决定是否要装置。然而,这并不是应用形容的惟一场景:它也是一种很好的总结我的项目的形式,能够帮忙其它开发者、维护者甚至本人在将来疾速地理解我的项目,对于任何一个 Node.js 我的项目来说都十分重要。

无论我的项目打算是什么,都倡议应用形容。相似这样:

"description": "A project that does something awesome

增加关键字 Keywords

keywords 字段中能够应用相干的关键字形容我的项目。上面是一个示例:

"keywords": ["descriptive", "related", "words"],

这个字段的构造是一个由双引号字符串组成的数组。

增加许可证 License

给 package.json 增加许可证

license 字段将告知用户容许他们拿这个我的项目干什么。

开源我的项目常见的协定有 MIT 和 BSD 等。许可证信息并不是必须的。大多数国家的版权法会默认开发者领有本人创作的作品的所有权。然而,明确阐明用户能够做什么和不能做什么会是一个很好的做法。这里有一个 license 字段的例子:

"license": "MIT",

增加版本号 Version

version 是 package.json 文件中必填字段之一,这个字段形容了以后我的项目的版本,上面是一个示例:

"version": "1.2.0",

应用内部包(依赖)Dependencies

弱小的依赖治理个性是应用包管理器的重要起因之一。每当在新的计算机上开始一个我的项目时,无需手动,npm 会主动装置所有的依赖项。然而 npm 如何精确地晓得我的项目须要哪些依赖呢?来看看 package.json 文件中 dependencies 这一部分。在这部分,须要依照上面这种格局来存储依赖包:

"dependencies": {
  "package-name": "version",
  "express": "4.14.0"
}

通过语义化来治理 npm 依赖 Semantic

在 package.json 文件的依赖项中,npm 包的 Versions 遵循语义化版本(SemVer,Semantic Versioning),它是一种旨在使治理依赖项更加容易的软件版本控制的行业标准。在 npm 上公布的库、框架或其它工具都应该应用语义化版本,以便让用户清晰地晓得如果我的项目降级将带来哪些扭转。在应用内部依赖项(大多数状况都是这样)进行软件开发时,理解语义化版本会很有用。这些数字保留着我的项目的偶尔产生的破坏性扭转,不会让人对我的项目昨天还失常,明天却无奈运行而大惑不解。依据官网,这是语义化版本的工作形式:

"package": "MAJOR.MINOR.PATCH"

当做了不兼容的 API 批改,应该减少主版本号(MAJOR);当新增了向下兼容的新性能时,应该减少次版本号(MINOR);当修复了向下兼容的 bug 时,应该减少订正号(PATCH)。这意味着订正号是用来修复谬误的,次版本号则是增加了新性能,但它们都没有毁坏之前的性能。主版本号(MAJOR)是增加了不兼容晚期版本的更改。

应用波浪号维持依赖项的最新订正号 Tilde-Character

如果想让我的项目各个局部放弃互相兼容,锁定依赖包版本是一个卓有成效的方法。然而大多数状况下,并不心愿错过依赖项的问题修复,因为它们通常蕴含重要的安全补丁,而且它们实践上也会兼容咱们既有的代码。

能够在依赖项的版本号前加一个波浪号(~),以让 npm 依赖项更新到最新的修订版。这里有一个容许降级到任何 1.3.x 的例子:

"package": "~1.3.8"

用脱字符(^)来应用依赖项的最新主要版本 Caret-Character

和上一个挑战中咱们学到的用波浪号来装置最新的修订版依赖一样,脱字符(^)也容许 npm 来装置性能更新。它们的不同之处在于:脱字符容许次版本和修订版更新。

当初我的项目中的 moment 依赖包的版本应该是“~2.10.2”,这意味着 npm 能够装置最新的 2.10.x 版的 moment,如果应用脱字符(^)来替换版本号的前缀,那么 npm 能够将 moment 降级装置到任何 2.x.x 的版本。

"package": "^1.3.8"

这会将依赖包更新到任意的 1.x.x 版本。

删除依赖

间接删除键值对即可,留神逗号的数量

退出移动版