文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
npm包
node 第三方模块称为 npm包,他是基于node内置模块封装的。可以更加方便开发,提高开发效率
通过 www.npmjs.com 可以搜索想要的包
npm install 包名
------简写------ npm i 包名
npm install 包名@指定版本号
------简写------ npm i 包名@指定版本号
1 package-lock.josn
记录每个包的下载信息,包括名字,版本号,下载地址
2 package.json
记录与项目相关配置信息,通过 npm init -y
生成 package.json 文件
2.1 dependencies节点
不仅开发中要用,上线以后也要用
通过 npm install 包名
的方式安装的包会被放到这个节点中
2.2 devDependencies节点
只在开发过程中使用,上线不用
通过 npm install 包名 -D
或者 npm insall 包名 --save-dev
方式安装的包会放到该节点
具体使用哪种方式安装,参考www.npmjs.com
搜索到包,根据文档进行安装
3 nrm 切换下包镜像源
通过npm install nrm -g
,全局安装nrm
通过 nrm ls
查看可用的地址
通过 nrm use切换地址
4 包的分类
- 项目包
1. 开发依赖包:只在开发阶段用到的包,通过npm install xxx -D
安装的包
2. 核心依赖包:开发和上线都用到的包,通过npm install xxx
安装的包 - 全局包
通过npm install xxx -g
安装的包成为全局包
5 包结构
- 每个包有单独的目标
- 包的根目录下必须包含package.json包管理文件
- package.json文件中必须包含
name ,version,main
,他们是包名,版本号,入口文件
6 创建一个包
- 创建一个package.json文件
{
"name": "lhw-tools", // 包名
"main": "index.js", // 入口文件
"version": "1.0.0", // 版本号
"description": "提供千分位和补零操作,测试版本", // 描述信息
"keywords": ["lhw"], // 搜索关键字
"license": "ISC" // 开源协议
}
- 创建入口文件
const repairZero = require('./repairZero')
const toThousand = require('./toThousand')
module.exports = {
...repairZero,
...toThousand
}
- 创建第一个子模块
repairZero = (param, num)=> {
if(typeof(param) != 'number') {
return console.log('传入的不是数字类型')
}
let zero = ''
for (var i=0;i<num;i++) {
zero = zero + '0'
}
return `${param},${zero}`
}
module.exports = {
repairZero
}
- 创建第二个子模块
toThousand = (param) => {
if(typeof(param) != 'number') {
return console.log('传入的不是数字类型')
}
return ('' + param).replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
}
module.exports = {
toThousand
}
- 完善README文件
7 发布包
- 在终端登录npm
npm login
会让输入用户名,密码,邮箱
登录成功后,cd到包的根目录下,运行npm publish
将包发布