美文网首页
Node.js 的模块加载方法

Node.js 的模块加载方法

作者: 黎明的叶子 | 来源:发表于2023-08-30 17:09 被阅读0次

概述
JavaScript 现在有两种模块。一种是 ES6 模块,简称 ESM;另一种是 CommonJS 模块,简称 CJS。

CommonJS 模块是 Node.js 专用的,与 ES6 模块不兼容。语法上面,两者最明显的差异是,CommonJS 模块使用require()和module.exports,ES6 模块使用import和export。

它们采用不同的加载方案。从 Node.js v13.2 版本开始,Node.js 已经默认打开了 ES6 模块支持。

Node.js 要求 ES6 模块采用.mjs后缀文件名。也就是说,只要脚本文件里面使用import或者export命令,那么就必须采用.mjs后缀名。Node.js 遇到.mjs文件,就认为它是 ES6 模块,默认启用严格模式,不必在每个模块文件顶部指定"use strict"。

如果不希望将后缀名改成.mjs,可以在项目的package.json文件中,指定type字段为module。

{
   "type": "module"
}

一旦设置了以后,该项目的 JS 脚本,就被解释成 ES6 模块。

# 解释成 ES6 模块
$ node my-app.js

如果这时还要使用 CommonJS 模块,那么需要将 CommonJS 脚本的后缀名都改成.cjs。如果没有type字段,或者type字段为commonjs,则.js脚本会被解释成 CommonJS 模块。

总结为一句话:.mjs文件总是以 ES6 模块加载,.cjs文件总是以 CommonJS 模块加载,.js文件的加载取决于package.json里面type字段的设置。

注意,ES6 模块与 CommonJS 模块尽量不要混用。require命令不能加载.mjs文件,会报错,只有import命令才可以加载.mjs文件。反过来,.mjs文件里面也不能使用require命令,必须使用import。

来自ECMAScript 6 入门

相关文章

  • Node.js - 模块系统

    Node.js模块系统 Node.js 有一个简单的模块加载系统。 为了让Node.js的文件可以相互调用,Nod...

  • nodejs 之 module (模块模块)

    1.什么是module;## Node.js 有一个简单的模块加载系统。 在 Node.js 中,文件和模块是一一...

  • 深入学习 Node.js Module

    Node.js 遵循 CommonJS规范,该规范的核心思想是允许模块通过require方法来同步加载所要依赖的其...

  • Node.js模块以及模块加载机制

    Node.js中的模块 在Node.js中,以模块为单位划分功能,通过一个完整的模块加载机制使得开发人员可以将应用...

  • ES6 模块与 CommonJS 模块的差异

    讨论 Node.js 加载 ES6 模块之前,必须了解 ES6 模块与 CommonJS 模块完全不同。impor...

  • 前端模块加载规范

    模块加载规范:CommonJS、AMD 和 CMD,而框架Node.js、RequireJS 和 Seajs 分别...

  • Nodejs学习第9天

    在Node.js中,有一个简单的模块加载系统,在Node.js的模块中,可以直接和文件通信,不仅仅是*.js文件。...

  • angular模块的方法

    AngularJS并没有main方法,AngularJS使用模块的概念来代替main方法。 加载和依赖模块加载动作...

  • node.js模块机制

    Node.js 有一个简单的模块加载系统。 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立...

  • Node.js知识点总结

    初始Node.js 模块化结构,按照CommonJS规范定义和使用模块。模块和文件是一一对应的关系,即加载一个模块...

网友评论

      本文标题:Node.js 的模块加载方法

      本文链接:https://www.haomeiwen.com/subject/nalamdtx.html