# npm理论
# 定义
- Node Package Manager,是一个NodeJS包管理和分发工具
- 2020年3月17日,Github收购npm,并保证npm将永远免费
# 结构
npm由三部分组成,网站,命令行接口,仓库
- 网站:用于发现包,设置属性等
- 命令行接口:通过命令行运行,是大多数开发人员与npm交互的方式
- 仓库:保存了javaScript软件及其元数据信息的
大型公共仓库
# 实践
# 上传公共仓库
- 命令行: npm login
- 命令行: npm init
- 命令行: 编辑代码
- 命令行: npm publish
# 模块协作
exports 和require配合使用(commonjs的语法)
- 使用
exports
或者modulre.exports
导出
//命名为 test.js let a= 1; let b = [1]; let c = {'name':'1'} let d = function (){return 1;} exports.a = a; exports.b = b; exports.c = c; exports.d = d; //或者 module.exports={a,b,c,d}
- 使用
require
导入
let test = require('test') console.log(test.a) console.log(test.b) console.log(test.c) console.log(test.d)
- 使用
export和import导入导出(es6的语法)
- 使用
export
或者export default
导出(同文件中不能同时使用两种导出方式)
//命名为 test.js let a= 1; let b = [1]; let c = {'name':'1'} let d = function (){return 1;} export {a,b,c,d} //或者 export default {a,b,c,d}
- 使用
import
导入
import {a as a,b as b,c as c,d as d} from 'test' import test from 'test' //使用 export default时,不需要加括号 console.log(a) console.log(test.a)
- 使用
es6语法中,
export
与export default
的主要区别- export导出常量,不能导出变量;
export const a = 1
合法,const a=1;export a
非法,可使用const a=1;export {a}
- export导出时,称作命名模块,import导入时,要带大括号
- export default导出时,称作匿名模块, import导入时,不用带大括号
- export导出常量,不能导出变量;
# 包版本说明
版本语义
代码状态 阶段 规则 示例 首次发布 新产品 从1.0.0开始 1.0.0 向后兼容的错误修复 补丁发布 增加第三位数字 1.0.1 向后兼容的新功能 次要版本 增加中间,并将最后一位置0 1.1.0 破坏向后兼容性的更改 主要版本 增加第一位数字,并将中间和最后一位置为0 2.0.0 版本依赖符号
更新类型 符号 示例 接受补丁版本的更新 ~ ~1.0.4或者1.0或者1.0.x 接受次要版本的更新 ^ ^1.0.4或者1或者1.x 接受主要版本的更新 * *1.0.4或者x