位置: 编程技术 - 正文

在 Node.js 中使用原生 ES 模块方法解析(node.js使用教程)

编辑:rootadmin

推荐整理分享在 Node.js 中使用原生 ES 模块方法解析(node.js使用教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js deno,node.js怎么用,node.js使用教程,node.js使用教程,nodejs使用视频教程,node.js适用哪些场景,node.js用到了什么,node.js怎么用,内容如对您有帮助,希望把文章链接给更多的朋友!

从版本 8.5.0 开始,Node.js 开始支持原生 ES 模块,可以通过命令行选项打开该功能。新功能很大程度上得归功于 Bradley Farias。

1.演示

这个示例的代码目录结构如下:

lib.mjs:

main.mjs:

运行演示:

2.清单:需要注意的事情

ES 模块:

·不能动态导入模块。但是 动态import() 的相关工作正在进行中,应该很快就能提供支持。

·没有元变量,如 __dirname 和 __filename。但是,有一个的类似功能的提案:“import.meta”。看起来可能是这样:

·现在所有模块标识符都是 URL(这部分在 Node.js 是新增的):

·文件 - 带文件扩展名的相对路径: ../util/tools.mjs

·库 - 没有文件扩展名,也没有路径 lodash

·如何更好地使 npm 库在浏览器中也可用(不使用 bundler)仍有待观察。一种可能性是引入 RequireJS 风格的配置数据,将路径映射到实际路径。目前,在浏览器中使用 bare path 的模块标识符是非法的。

与 CJS 模块的互操作性

你可以导入 CJS 模块,但它们总是只有默认的导出 - 即 module.exports 的值。让 CJS 模块支持命名导出已经在做了,但可能需要一段时间。如果你能帮忙,可以来做。

在 Node.js 中使用原生 ES 模块方法解析(node.js使用教程)

· 不能在 ES 模块中使用 require()。主要原因是:

· 路径解析工作稍有不同:ESM 不支持 NODE_PATH 和 require.extensions。而且,它的标识符始终是 URL 也会导致一些细微差异。

· ES 模块始终以异步方式加载,这确保了与 Web 的最大兼容性。这种加载风格并不能通过 require() 混合使用同步加载 CJS 模块。

· 禁止同步模块加载也可以为 Top-level await 导入 ES 模块保留后路(一个当前正在考虑的功能)。

3.早期版本的 Node.js 上的 ES 模块

如果要在 8.5.0 之前的 Node.js 版本上使用 ES 模块,请参阅 John-David Dalton 的 @std/esm。

提示:如果不启用任何可解锁的额外功能,将在 Node.js 保持 % 兼容原生 ES 模块.

FAQ

什么时候可以不带命令行选项使用ES 模块?

目前的计划是在 Node.js LTS 中默认可使用 ES 模块。

进一步阅读

有关 Node.js 和浏览器中 ES 模块的更多信息:

· “Making transpiled ES modules more spec-compliant” [using ES modules natively vs. transpiling them via Babel]

· “Module specifiers: what's new with ES modules&#;” [Why .mjs&#; How are module specifiers resolved&#; Etc.]

· “Modules” [in-depth chapter on ES modules in “Exploring ES6”]

即将到来的 ECMAScript 提案:

· 博客: “ES proposal: import() ? dynamically importing ES modules”

· 提案: “import.meta”

总结

标签: node.js使用教程

本文链接地址:https://www.jiuchutong.com/biancheng/379518.html 转载请保留说明!

上一篇:Node.js+jade抓取博客所有文章生成静态html文件的实例(nodejs抓取网页内容)

下一篇:深入理解Node.js中通用基础设计模式(深入理解两个大计重要论断心得体会)

  • 计提税费表格
  • 开咨询费需要合同吗
  • 工资扣水电费怎么算
  • 企业清算的资产包括
  • 计提代扣个人工会经费怎么做账
  • 非正常损失免税吗
  • 销售人员出差补助计入什么科目
  • 处置固定资产增值税和所得税报税能一致吗
  • 跨省工程需要什么条件
  • 让渡资产使用权收入的确认条件
  • 应收贷方余额怎么处理
  • 工地工资是人走账清吗
  • 支付职工一次性补助
  • 自产产品赠送确认收入吗
  • 普通发票计量单位没填
  • 虚开进项税额转出会计分录
  • 什么情况下的发烧才会全身酸痛呢
  • 购买工装的进项能抵扣吗
  • 公司股权转让协议标准范本
  • 增值税发票小数点后面小数不能打印
  • 税收征收管理权是什么
  • 现金流量表的编制依据
  • 出售交易性金融资产的记账凭证
  • win10锁屏壁纸模糊怎么回事
  • mac双系统切换键
  • bios相关概念
  • php该怎么学
  • 一篇不错的php基础论文
  • HTTP 400 错误是什么原因
  • wind10画图在哪
  • 土地使用税的税目写什么
  • Win10 20H2/2004 Beta Build 19042.789累积更新补丁KB4598291正式推送
  • php数组函数输出《咏雪》里有多少"片"字
  • 销售使用过的汽车会计分录
  • 承租厂房需要缴纳什么税
  • 同城票据清算会怎么样
  • 增值税发票作废后还能查到吗
  • 自制原始发票
  • 金蝶迷你版财务软件报价
  • 数据库读写异常
  • 百分之十三增值税发票能抵扣多少?
  • ps怎么把图片套入样机快捷键
  • 土石方工程开票范围
  • dedecms怎么改图片
  • 已经提完折旧的房产价值评估
  • 法人可以领退休金吗
  • 差旅费包括内容
  • mysql5.5创建用户
  • 公司购买汽车如何抵成本
  • 材料采购发票未到
  • 预收账款借贷方向增减
  • 临时设施摊销属于什么资产
  • 现金流量为负的原因
  • 会计年初如何轻松工作
  • 企业所有者权益是指什么
  • MySQL:Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEM
  • sqlserver查询数据库表名
  • windowsxp搜索不到文件
  • ubuntu安装超详细教程
  • diskgenius_winpe文件夹能删吗
  • xp系统桌面图标不见了,点什么都没用?
  • win10h2版本
  • linux设置静态
  • Unity3d Asset Serialization 设置错误导致SVN文件不能同步
  • JavaScript实现QQ列表展开收缩扩展功能
  • javascriptcall和apply
  • js匿名函数怎么调用
  • unity3d webgl
  • 10分钟掌握心理学
  • jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
  • js如何实现图片懒加载
  • googlevoice使用教程
  • 副局长哪里任命
  • 新一代票据系统怎么开通
  • 开电子发票流程步骤
  • 温州电子税务局电话号码
  • 一级稽查体制
  • 普惠性和非普惠的区别
  • 个体工商户如何注销
  • 财税库银后端商户为什么扣钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设