Node基础知识三——包管理工具

46 阅读3分钟

1.0 包管理工具

1.1初始化包

npm init
// 更快的初始化包
npm init -y

1.2下载包

我们下载一个 数组去重的包

npm install uniq
// 或者
npm i uniq

我们现在目录结构是

study_npm
----node_modules
----package.json
----package-lock.json  // 目的锁定我们下载包的版本的

我们新建一个文件 index.js

// 导入包
const uniq = require('uniq')
​
let arr = [1,2,2,3,4,5,6,7,2,3,4,5]
​
let  res = uniq(arr) 
​
console.log(res) // [ 1, 2, 3, 4, 5, 6, 7]

--save 和 --save-dev 的区别

简单来说:

  • 这跟 npm install 和 npm i 是一样的
  • --save 和 -S 是一样的
  • --save-dev 和 -D 是一样的
  • --save 和 -S 安装生产依赖(项目上线以后也需要使用到的)
  • --save-dev 和 -D 安装开发依赖(只在开发阶段使用)

package.json 文件中有体现:

dependencies 是生产依赖 devDependencies 是开发依赖

生产依赖:就是程序上线以后仍然需要使用的依赖

开发依赖:就是我们在开发过程中需要用的依赖,只在开发阶段起作用

2.0 导入模块

2.1导入的路径是个文件夹

首先检测文件夹下面的package.json文件中main属性对应的文件,如果存在则导入,如果文件不存在则报错

// 1.0 新建文件夹module及文件package.json 和app.js
// package.json
{
  "main": "./app.js"
}
​
// app.js
module.exports = "文件导入的"// 新建导入文件 index.jsconst data = require('./module')
​
console.log(data) // 文件导入的
​
​
// 2.0 修改 package.json
{
  "main": "./app2.js"
}
// 运行 node index.js 报错 没找到app2.js

如果不写package.json 或者没有 main属性,则会去找文件夹下面的index.jsindex.json

如果还没有找到,就会报错。

2.2 require 导入npm的基本流程

  1. 现在当前文件夹下的node_module中寻找同名的文件夹
  2. 没找到的话,去上级目录找,依次类推直至到磁盘目录

比如我们上面的导入的uniq模块写法

// 1.0 
const uniq = require('uniq')
// 2.0
const unqi = require('./node_module/uniq')
// 3.0 
const unqi = require('./node_module/uniq/uniq.js')
// 后两种虽然也行但是不灵活

3.0 包管理工具yarn

特点:

  1. 速度快
  2. 超级安全
  3. 超级可靠

3.1 yarn的安装

npm i -g yarn

3.2 yarn的常用命令

功能常用命令
初始化yarn init / yarn init -y
安装包yarn add uniq 生产依赖 yarn add less --dev 开发依赖 yarn global add nodemon 全局安装
删除包yarn remove uniq 删除依赖包 yarn global remove nodemon 删除全局包
安装项目依赖yarn
运行命令别名yarn <别名> 比如 yarn dev 不需要 run

怎么判断项目是npm还是yarn管理的

  • npm的锁文件是 package-lock.json
  • yarn的锁文件是yarn.lock

4.0 发布一个npm包

4.1注册账号

官网 www.npmjs.com/

4.2创建文件夹,并新建文件index.js,在文件中声明函数,使用module.exports暴露

创建文件夹lie_add,然后初始化npm init -y

function add(a,b){
    return a + b
}
​
// 暴露
module.exports = {
    add
}
​

此外还需要新建一个文件 README.md 包的说明文件

## 安装
```js
npm install lie_add
```## 导入```js
const add = require('lie_add')
```## 使用```js
let res = add(1,2)
```

4.3看看自己的镜像是不是npm

npm get registry
// 如果不是的话 设置一下
npm config set registry https://registry.npmjs.org/

4.4命令行登录

npm login

4.5命令行提交包

npm publish

4.6更新包

修改package.josn里面的版本号 然后发布即可

4.7删除包

npm unpublish  lie_add@1.0.0