前言

众所周知,nodejs应用刚出现的时候,大家都在编写commonjs风格的应用。
随着nodejs逐步的实现ECMAScript规范。大家更乐意使用esm的编码风格。
本文旨在引导大家无负担的将编写nodejs应用时的风格切换为esm

一些小提示:

commonjs风格:使用module, requrie, 等关键字来进行模块操作
esm风格:使用import, export 等关键字来进行模块操作

操作

正如古早以前的笑话,将一头大象放进冰箱一共要分几步?
因此,我梳理了一个操作步骤:

  1. package.json中添加字段:
"type": "module"
  1. 将src代码中的require语句重构为import语句,注意也不要漏掉module.exports
  2. import语句中的文件路径补全对应的扩展名(可以使用require to import 插件来自动化操作)
  3. 如果有导入json文件,使用node --experimental-json-modules src/app.js这种方式进行处理

参考链接

  • esm_no_require_exports_or_module_exports
  • Fix “__dirname is not defined in ES module scope” in JS
  • esm-document
  • Cannot use import statement outside module in JavaScript

编写ESM风格的nodejs应用相关推荐

  1. es5 编写类风格的代码

    分享下<JavaScript忍者秘籍>中的一种编写类风格代码的方法 JavaScript可以让我们通过原型实现继承,许多开发人员,尤其是那些有传统面向对象背景的开发人员,都希望将JavaS ...

  2. 两种编写代码风格方式对比

    一.简洁版本,便于阅读,不方便移植 //led.h #define LED1 PBout(0) #define LED2 PBout(1) #define LED3 PBout(5) void LED ...

  3. 使用C语言和DX库编写东方风格的STG射击游戏--------前言

    全文参照以下网站制作,全日文的,有兴趣的朋友请自行移步(官网能下到完整源代码): http://dixq.net/rp/index.html 完整的游戏版本(非源代码)可以到这里下载(或者到上述官网下 ...

  4. 七天学会NodeJS

    2019独角兽企业重金招聘Python工程师标准>>> NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充 ...

  5. [转] 使用Spring MVC构建REST风格WEB应用

    原文地址:http://fancy888.iteye.com/blog/1629120 对于运行在网络上的MIS系统而言,处理数据的是整个系统的主要任务,翻开程序我们可以看到,80%以上的代码都在处理 ...

  6. nodejs学习资料

    2019独角兽企业重金招聘Python工程师标准>>> NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充 ...

  7. 使用Google App Engine、Google Closure Library与Clojure编写HTML5应用

    上周,Freiheit.com的CTO Stefan Richter在慕尼黑举办的Google开发者日上谈到了他对于使用HTML 5与Google App Engine编写富Internet应用的愿景 ...

  8. 分别统计出其中英文字母、空格、数字和其它字符的个数 matlab 程序,编写一段程序,要求先输入一行字符,然后分别统计出其中英文...

    编写一个求和的程序,要求能任意输入两个整数,求和 用javascript写 +=functionadd(){varA=document.getElementById("a").va ...

  9. 面向对象风格的合理架构

    一直以来,我都对面向对象的编写程序风格并不是非常了解,总以为面向对象就是不再以练基础代码的掌握为前提,对自己需要达到的设计需求去进行设计从而达到目的这一类的处理方式.通过近期阅读软件体系结构这方面的一 ...

最新文章

  1. 【Luogu4512】多项式除法(FFT)
  2. Java 基础学习-链接
  3. 单调队列板子:求滑动窗口中最大值和最小值
  4. 济南女子用计算机付款,山东一女子带孩子买鞋,用计算机假装付款,店员:给孩子做个榜样...
  5. 左值和左值引用、右值和右值引用
  6. Linux下网络流量实时监控工具大全
  7. andriod studio怎么设置图片大小_Word图片大小总是对不齐,如何统一图片的大小位置,看一眼就会!...
  8. 【快速幂】小明解密码 (jzoj 2146)
  9. 网易云android视频播放器,网易云服务-在线搜歌-数据结构
  10. 一个根据用户名生成头像的库——@multiavatar/multiavatar在react中的使用
  11. OC dyld750调用分析
  12. 保存SVM模型并调用
  13. 庞果答题:亿阳信通:不可表示的数 的一个人见解(8-13第二次更新。)
  14. “马赛克”真能去除了?老司机狂喜!
  15. BOM 物料清单 Bill Of Materials
  16. 防水蓝牙耳机哪个好?防水音质好的蓝牙耳机推荐
  17. “七段数码管绘制”实例详解
  18. [Maven 基础]-- Dependency Scope
  19. thinkphp5+layui后台管理系统
  20. Python转换表情符号 emoji

热门文章

  1. c++实现贪心法构造最大整数问题
  2. 【AE表达式】下载的模板表达式报错?大多数都是小问题!
  3. 归并排序算法分析与实现
  4. Unity-AR 简介
  5. 下载python安装包--国内环境快速下载
  6. PHP array_chunk()函数
  7. ElementUI-textarea文本域高度自适应设置的方法
  8. (1条消息) CodeForces 1278 B.A and B(Math)
  9. 初识LightGBM
  10. 第一章 Xadmin简介