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.js
const data = require('./module')
console.log(data) // 文件导入的
// 2.0 修改 package.json
{
"main": "./app2.js"
}
// 运行 node index.js 报错 没找到app2.js
如果不写package.json
或者没有 main
属性,则会去找文件夹下面的index.js
和index.json
如果还没有找到,就会报错。
2.2 require 导入npm的基本流程
- 现在当前文件夹下的node_module中寻找同名的文件夹
- 没找到的话,去上级目录找,依次类推直至到磁盘目录
比如我们上面的导入的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
特点:
- 速度快
- 超级安全
- 超级可靠
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注册账号
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