当前位置: 首页 > news >正文

commonJS和esModule的应用

commonJS

  • commonJS规范的核心变量是:exports,module.exports,require
  1. exports 和 module.exports可以负责模块的导出
  2. require 负责模块的导入
module.exports 导出方案:
const name = 'yx'
const age = 18// 1 导出方案
module.exports.name = name
module.exports.age = ageconst info = {age: 12,name: 'yx',foo: function(){console.log('foo')}
}
// 2 导出方案
module.exports = info
exports 导出方案:
const name = 'yx'exports.name = name

注意: exports 导出实际上也是用module.exports进行导出的,如:

// 默认给的 空对象
module.exports = {}
// 把module.exports 赋值给 exports 的
exports = module.exports
require 导入方案
const info = require('文件路径')
require(X) 导入格式的查找规则
  • 情况一:X是一个node核心模块,比如path,http,fs
  1. 直接返回核心模块,并且停止查找
  • 情况二:X是以 ./ 或 …/ 或 /(根目录)开头的
  1. 第一步:将X当作一个文件在对应目录下查找:
    A:如果有后缀名,按照后缀名的格式直接查找对应的文件
    B:如果没有后缀名,会按照如下顺序:
    a:直接查找文件X
    b:查找X.js文件
    c:查找X.json文件
    d:查找X.node文件
  2. 第二步:没有找到对应的文件,将X作为一个目录
    A:查找目录下的index文件
    a: 查找X/index.js 文件
    b: 查找X/index.json 文件
    c: 查找X/index.node 文件
  • 情况三:直接是一个X(没有路径),并且X不是一个核心模块
  1. 会在node_modules里查找相应的index.js文件
const axios = require('axios')

esModule

  • import 是进行导入,export 是进行导出
  1. import 导入的几种方式
// 第一种方式 解构方式
import { name, age } from './foo.js'// 第二种方式 可以进行别名设置
import { name as fName, age as fAge } from './foo.js'// 第三种方式 导出所有 (也可以设置别名)
import * from './foo.js'
import * as foo from './foo.js'// 第四种方式 针对于 export default 方式
import foo from './foo.js'
// 导出方式则为 
export default foo
// 或者为
export {foo as default
}
  1. export 导出的几种方式
function add(){}function sub(){}// 第一种方式
export {add,sub
}
// 同样导出也可以使用别名
export { add as fAdd, sub as fSub }// 第二种方式
export { add, sub } from './foo.js'// 第三种方式
export * from  './foo.js'
http://www.lryc.cn/news/333211.html

相关文章:

  • (十一)RabbitMQ及SpringAMQP
  • STM32 M3内核寄存器概念
  • SQL语句的编写
  • Lecture 1~3 About Filter
  • 配置vscode链接linux
  • 论文阅读——MVDiffusion
  • Linux中的网络命令深度解析与CentOS实践
  • nginx配置实例(反向代理)
  • Flutter 解决NestedScrollView与TabBar双列表滚动位置同步问题
  • 云计算存在的安全隐患
  • 黑翅鸢优化算法(BKA)-2024年SCI一区新算法-公式原理详解与性能测评 Matlab代码免费获取
  • sqlmap(四)案例
  • 【C++初阶】String在OJ中的使用(一):仅仅反转字母、字符串中的第一个唯一字母、字符串最后一个单词的长度、验证回文串、字符串相加
  • 【25考研】:四川大学计算机学院24届874考研考情分析
  • 【GPT-4 Turbo】、功能融合:OpenAI 首个开发者大会回顾
  • java-Stream原理及相关操作详解(filter、map、flatMap、peek、reduce、anyMatch等等)
  • 基于Springboot中小企业设备管理系统设计与实现(论文+源码)_kaic
  • ORACLE 12 C估算 用户历史上的CPU消耗
  • Zookeeper 简明使用教程
  • JS 利用 webcam访问摄像头 上传到服务器
  • 【微信小程序】【小程序样式加载不出来】
  • 【THM】Exploit Vulnerabilities(利用漏洞)-
  • Tomcat管理配置
  • C++模版简单认识与使用
  • 图解大型网站多级缓存的分层架构
  • 基于Vision Transformer的迁移学习在乳腺X光图像分类中的应用
  • WebGIS 地铁交通线网数据可视化监控平台
  • 批量导入svg文件作为图标使用(vue3)vite-plugin-svg-icons插件的具体应用
  • X服务器远程连接问题解决:Bad displayname ““‘或Missing X server or $DISPLAY
  • matlab:五点中心差分求解Navier边界的Biharmonic方程(具有纳维尔边界的双调和方程)