位置: 编程技术 - 正文

在 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中通用基础设计模式(深入理解两个大计重要论断心得体会)

  • 新成立的公司如何建账
  • 什么是税务代理人
  • 电子发票和纸质发票只能二选一吗
  • 税控盘当月不抵扣怎么申报
  • 法人变更注册资金降低以前的债务怎么处理
  • 税务记账保存多少年纳税人转小规模
  • 行政单位明细账包括哪些
  • 只有税控盘没有报税盘
  • 增值税税收返还政策
  • 小规模购买金税盘可以全额抵扣吗
  • 国税申报需要带什么资料
  • 培训发票可以抵进项税吗
  • 印花税滞纳金计算方法
  • 房地产土地成本计算公式
  • 合并报表怎么抵损益
  • 我的初级备考经验--付出才有回报
  • 公司负担劳务费的个税如何做分录
  • 增值税普通发票几个点
  • 赠送客户产品账务处理
  • 企业购买股票投资
  • 应收票据的贴现利息应计入
  • 年报企业控股情况怎么填
  • 调整以前年度的收入怎么入账
  • 卖固定资产如何申报
  • 超级本能加装硬盘吗
  • 发票作废之后税钱怎么退回了
  • vite首次打开界面加载慢问题/解决
  • 业务招待费应计入期间费用的哪项费用
  • PHP:pg_lo_seek()的用法_PostgreSQL函数
  • uniapp自定义组件模式
  • php必背知识点
  • 政策性搬迁条件
  • 世界上最早的计算机是
  • php的框架有哪些
  • err03 failed to
  • 小规模纳税人增值税申报表怎么填
  • 微信小程序网页版
  • 商贸企业发生退税的原因
  • 公司发给员工的股票
  • 医疗保险合同印花税怎么交
  • 固定资产清理怎么入账
  • 新设立的企业如何办理开业税务登记
  • 用友重新安装步骤
  • 尚未报送年度会计报表
  • 股权转让 收益
  • 报销的注意事项
  • 原材料盘盈会计处理
  • Java连接sqlserver2008数据库代码
  • 某项目施工成本计划如下图,则5月末
  • 子公司没有收入,只有费用如何企业所得税汇算清缴
  • 宾馆收入怎么做账
  • 公司股权作价转让会计分录案例
  • 施工单位结算
  • 其他应收款收不回来怎么写情况说明
  • 售后回租的实际利率怎么计算
  • 检测费专用发票会计分录
  • 车票抵扣填在申请表哪里
  • 物流运输车类型
  • 支付宝如何支付医保费用
  • 应收会计怎么做
  • mysql数据库类型有哪些?如何选择合适的数据类型
  • 笔记本没有光驱怎么加装固态硬盘
  • ctrmon.exe
  • 无法识别的选项
  • linux修改ssh端口号启动失败
  • win1021h2正式版
  • Linux安装完mysql后提示错误无法登陆mysql怎么办?
  • perl-v
  • js拖拽元素到另一个元素
  • 安卓的引导式访问叫什么
  • 网页编辑器手机版
  • scrollbottom用法
  • javascriptz
  • js获取当前月份的天数
  • jquery滚动条滚动到指定位置
  • 青海国家税务局官网
  • 建筑企业个人所得税管理办法
  • 驻马店燃气投诉电话号码
  • 运输装卸费属于增值税价外费用吗
  • 北京税务热线电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设