NPM小记

2019/12/06 node

温故知新,总结一下npm

1、关于npm

  1. npm全称为Node Package Manager
  2. 是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。
  3. npm是世界上最大的软件注册表。
  4. npm由三个不同的组件组成:网站、命令行界面(CLI)、注册表

2、使用npm

安装node的时候就直接把NPM安装好了,npm需要和node一起使用,所以直接去下载node就好了。

安装:百度node去官网下载安装。

更新npm: npm install npm@latest -g

2.1 npm管理包

想使用npm安装别人提供的包很简单

  npm install <package_name>

更新包:

  1. 在 package.json 文件所在的目录中执行 npm update 命令。
  2. 执行 npm outdated 命令。不应该有任何输出。

卸载包:

  npm uninstall <package>

2.2 npm常用参数

  1. -g: 全局安装
  2. --save / -S: 将模块依赖关系写入到package.json文件的dependencies参数中
  3. -dev / -D:将模块依赖关系写入到package.json文件的devDependencies参数中
  4. @+version:安装指定版本

2.3 npm常用命令

  1. npm config set registry <URL> : 更改npm的镜像源
  2. npm init:初始化
  3. npm init -y:默认配置
  4. npm help: 帮助
  5. npm run <command>: 运行脚本

3、package.json

npm初始化完成之后会生成一个package.json文件,这个文件不可以加注释,因为是json文件。

使用的默认配置npm init -y

{
  "name": "npm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

3.1 目录字段的含义

  1. name:包名字
  2. version:版本号
  3. description:描述
  4. main:入口文件
  5. scripts:配置脚本的地方
  6. keywords:关键字,用于搜索
  7. author:作者
  8. license:协议

除了上面几个默认的字段之外,还有一些常用的

  1. dependencies:依赖项,该项里面的依赖生产环境和开发环境都需要
  2. devDependencies:开发依赖, 里面的依赖只有开发环境需要
  3. eslintConfig:eslint的配置项
  4. peerDependencies:会提示你缺少的模块,默认要求带版本
  5. bundleDependencies:该项配置的依赖在打包的时候会打进包里面

4、version 版本号

版本的三个数代表着发版的重要性,是版本的标识号

例如:1.2.3

  1. 第一位表示大版本更新,不兼容之前的代码
  2. 第二位表示增加了功能,局部更新
  3. 第三位表示小补丁。

还有一些常用的版本标识

  1. Alpha:初始版本 1.2.3-alpha.1
  2. Beta:Beta版本是Alpha版本后的一个版本,与Alpha版本相比,Beta版本修复了Alpha版本的一些Bug。 1.2.4-beta.1
  3. RC:RC版本称为“发布候选版” 1.3.0-rc.1
  4. GA:GA版本是普遍可用版本,从该版本开始,官方开始推广使用。
  5. R(Release):正式版
  6. dev:测试版,测试使用的

5、scripts 脚本

scripts字段是配置执行的脚本的,它有两个作用

  1. 执行命令: echo xxxx
  2. 执行 node_modules/.bin下的文件

当我执行npm run 的时候 他会把当前目录node_modules/.bin也拷贝到当前的系统的path中,所以npm run 可以执行.bin下的文件。

6、license 协议

放一张图

7、dependencies 依赖

不同的依赖项的作用不一样,上面有说。

  "dependencies": {
    "axios": "^0.19.0"
  },
  "devDependencies": {
    "eslint": "^5.16.0"
  },

8、发布

发布的时候需要npm切到官方的源,在全局作用域下。

具体发布看另一篇 https://catsaid.cn/2019/10/16/webpack4/

9、扩展

nrm: 是一个管理 npm 源的工具。用来切换官方 npm 源和国内的 npm 源。

nvm:他可以方便的在同一台设备上进行多个node版本之间切换

npx:可以直接执行node_modules/.bin文件 不需要在去配置scriprts;如果模块不存在可以安装 ,安装完是有后还会自己销毁,避免安装全局模块, 拔x无情。

  npx create-react-app project-name

Search

    Table of Contents