关于NPM你应该知道的10个知识点

[广告]京东京造 K2蓝牙双模机械键盘 背光84键有线/蓝牙无线双模


原文:10 things you should know about NPM – JavaScript in Plain English – Medium

翻译:码中人

0 NPM归哪家公司

鉴于最近才发生的事情,第0点是码中人自行补充的。

知名包管理工具npm,现在被GitHub收购了,鉴于GitHub现在是微软的,所以npm成了微软的“孙公司”。

1 什么是NPM

  • NPM是 Node Package Manager 的简写,大部分的JavaScript程序都是以包的形式注册到npm中。
  • npm 已注册超过700K包;全球最大的IT生态系统
  • Yarn 是npm的替代品;由Facebook创建

2 package.json

  • 同一个包根据版本的不同,可以有不同的功能;package.json文件记录了所有已安装的包的功能。
  • 以下命令可创建 package.json 文件:

npm init

package.json 示例:
{
  "name": "mzhren_projects",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

3 License 许可

  • ISC, MIT, BSD许可证:当你承认模块和保留原始许可证声明,可以免费使用。
  • Apache:可自由使用但有专利权限制。
  • GPL:在部署时需要公开源代码,并且以GPL许可分发。

scripts  package.json中的脚本

scripts 属性指定npm 在控制台中运行的脚本命令。

通常情况下,有这几个命令:

 “start”: “react-scripts start”,
    “build”: “react-scripts build”,
    “test”: “react-scripts test”,
    “eject”: “react-scripts eject”

Vue 跟 React项目通过都是yarn start 或 npm start来启动的。

5 -- save  选项

  • 在版本5之前,默认情况下,NPM只是在node_modules下安装了一个包。当您试图为您的应用程序/模块安装依赖项时,您需要首先安装它们,然后将它们(连同适当的版本号)添加到您的package.json的dependencies部分。
  • 从NPM 5.0.0开始,安装的模块默认作为依赖项添加,因此不再需要–save选项。

6 — save-dev 选项

  • 在 devDependencies 中添加包。也就是说,nodemon在源代码被修改时提供了热加载,通常只用于开发环境。
  • Nodemon是一个实用程序,它将监视源中的任何更改并自动重新启动服务器。因为当你修改源文件后,如果你用的是原来的node 则必须手动重启 你的更改才会有效。但是如果用的是nodemon,则你不需要手动操作,它会检测你的代码改动自动重启。
  • — save-dev  可以缩写成 -D

7 package 版本

node 包的版本始终是以3个数字规则:

1.0.7

第一个数字 1

  • 大版本
  • 第一个数字为0一般是指开发版本,正式版本从1开始
  • 主要版本增加只有当较低的版本不能兼容。,从1.5.0升级到2.0.0意味着很可能导致错误。

第二个数字0

  • 小版本
  • 小版本一般是兼容的,从1.5.0升级到1.6.0,一般不会产生兼容性问题

第三个数字 7

  • 补丁版本
  • 主要用于修复一些小bug

8 ^,<,~符号

^ 插入符号:

  • 安装/更新至小版本
  • 版本号中最左边的非0数字的右侧可以任意
  • 例如:npm express@ ^ 1.1.1,安装版本1.1.1 ~ 2.0.0(不含2.0.0)都可以,大于等于1.1.1,但大版本不能超过1。
  • 如:^0.2.3 ,表示>=0.2.3 <0.3.0,可以是0.2.3,0.2.4,…..,0.2.n

~波浪符号

  • 安装/更新到补丁版本,不会超过小版本
  • 如:npm i express@~1.1.1 可以安装 1.1.1 ~ 1.2.0 到的版本。
  • ^常常比~有用,因为…

@latest 

  • 表示可以安装最新版本

9 npm outdated 命令

  • 可以找到可用的更新包
  • 当Current 和 Wanted不一样时,可以更新
  • 更新命令为:npm update [package name]
  • 报告 npm update 要吧更新所有需要更新的包

10 有用的资源

码中人 微信公众号

关注微信公众号

码中人 微信公众号