ES Module在nodeJS下与CommonJS的交互
ES Module在nodeJS下与CommonJS的交互
- 一、ES Module导入CommonJS
- 二、CommonJS导入ES Module
- 三、总结
一、ES Module导入CommonJS
// es-module.mjs
import mod from "./common.js"
console.log(mod)
// common.js
module.exports = {foo:"this is foo"
}
执行node --experimental-modules es-module.mjs
,打印结果如下:
得出结论,ES Module中可以导入CommonJS模块。
// common.js
exports.foo = "this is foo"
执行node --experimental-modules es-module.mjs
,打印结果与之前一致。
注意,CommonJS始终只会导出一个默认的成员。
// es-module.mjs
import { foo } from './common.js'
console.log(foo)
结果如下:
意思大概就是common.js并没有导出一个叫foo的命名成员。
所以不能直接提取CommonJS模块中的成员。也再次说明,import不是对导出对象的解构。
二、CommonJS导入ES Module
// es-module.mjs
export const bar = "this is bar"
//common.js
const mod = require("./es-module.mjs")
console.log(mod)
执行:node --experimental-modules common.js
,结果如下:
报错的意思大概就是:不能通过require的方式去载入一个ES Module模块。
在node环境中不允许在CommonJS中通过require方式去载入ES Module模块,但是在其他环境例如webpack打包环境是可以的。
三、总结
- ES Module可以导入CommonJS模块
- CommonJS中不能导入ES Module模块
- CommonJS始终只会导出一个默认成员
- 注意import不是解构导出对象
ES Module在nodeJS下与CommonJS的交互相关推荐
- 彻底掌握 Commonjs 和 Es Module
彻底掌握 Commonjs 和 Es Module Commonjs commonjs 实现原理 require 文件加载流程 require 模块引入与处理 require 加载原理 require ...
- ES Module 和 CommonJS
一.前言 早期的 JavaScript 作为一种脚本语言,其产生的目的只是为了简单的表单验证或动画实现. 并且不需要分离多个 js 文件来写,功能相对简单.只需要内嵌一个 script 标签即可. a ...
- 面试题:Commonjs 和 Es Module区别
一 前言 今天我们来深度分析一下 Commonjs 和 Es Module,希望通过本文的学习,能够让大家彻底明白 Commonjs 和 Es Module 原理,能够一次性搞定面试中遇到的大部分有关 ...
- 了解一下ES module 和 Commonjs
最近测试了几个 ES module 和 Commonjs 的例子,理解了之前不太理解的概念,记录一下.要是想多了解的可以去看看阮老师的 Module 那部分.会贴一小部分的代码,不会贴所有验证的代码. ...
- 请说说CommonJS和ES module的区别
CommonJS 1.module代表当前模块 在CommonJS中,一个文件就是一个模块,模块中的变量.函数.类都是私有的外部不可以访问,并规定module代表当前模块,exports是对外的接口. ...
- CommonJs和Es Module的区别
为什么会有CommonJs和Es Module呢 我们都知道在早期JavaScript模块这一概念,都是通过script标签引入js文件代码.当然这写基本简单需求没有什么问题,但当我们的项目越来越庞大 ...
- 前端模块化详解(CommonJS、AMD、CMD、ES Module)
大家好,我是一碗周,一个不想被喝(内卷)的前端.如果写的文章有幸可以得到你的青睐,万分有幸~ 写在前面 随着前端项目的不断复杂,代码日益膨胀,项目的维护难度随之越来越大,此时模块化也就相继的出现了,本 ...
- JS JavaScript模块化(ES Module/CommonJS/AMD/CMD)
前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了, jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得 ...
- ES Module和CommonJS的区别
ESM:import, import(), export, export default CommonJS: require(), module.exports 1. CommonJS输出的是值的拷贝 ...
最新文章
- MyBatis源码分析——MyBatis的扩展点(pugins)
- Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)
- 分支管理---Bug分支
- MySQL报错113_mysql 2003 (113)
- 6-14 数据库高级
- Problem E: 建立链表(线性表)
- JS代码 是否显示横竖条
- H5页面左图右边文字如何布局
- dcdc模块降额设计_一款高性能电源模块的设计思路
- Linux---管道通信的使用
- Thread 线程基础之-线程相关知识
- C语言中的神兽strdup
- Rust : async、await 初探
- 食堂饭卡管理系统C语言——课程设计实习
- 笔记 || css字体word字体大小对照表
- html中修改图片大小的标签,css如何设置图片的大小?
- ClippingNode做游戏的新手指导
- 知乎热议 | 何恺明 新作 如何?
- 课时31 永久储存:腌制一缸美味的泡菜
- c语言sscanf函数和结构体,C语言sprintf与sscanf函数 -电脑资料