.js,.cjs和.mjs defference
#javascript #网络开发人员 #node #es6

cjs,mjs和.js是用于表示不同类型的JavaScript文件的文件扩展名。这是它们之间的区别:

  1. .js(javaScript):
    .js扩展名是JavaScript文件最常见的文件扩展名。它用于指示文件包含JavaScript代码。 .js文件可以在不同的JavaScript环境中执行,例如Web浏览器,服务器和其他JavaScript运行时环境。

  2. cjs(commonjs):参考 CONCORJS是用于在Node.js等服务器端环境中使用的JavaScript的模块系统。 CJS模块格式允许您使用requiremodule.exports语法定义模块。在concomjs中,每个文件被视为一个单独的模块,您可以使用requiremodule.exports在模块之间导入/导出功能。

commonjs模块通常用于node.js应用程序和其他服务器端JavaScript环境中。您通常会使用CommonJS模块格式找到带有.js扩展名的文件。

  1. MJS(ecmascript模块): MJS是用于遵守eCmascript模块(ESM)规范的JavaScript文件的扩展名。 eCmasixt模块是JavaScript语言标准的一部分,并提供了定义模块的更现代和标准化的方法。

ecmasixt模块使用importexport关键字来定义依赖关系并揭示模块之间的功能。与主要用于服务器端环境中的commonj不同,可以在支持它们的浏览器和服务器端环境中使用ecmascript模块。

MJS扩展程序通常用于指示JavaScript文件使用ecmascript模块格式,从而更易于区分使用CommonJS和Ecmascript模块的文件。

总而言之,.js文件是JavaScript文件的一般扩展程序,而CJS和MJ是用于指定模块格式(commonjs and ecmascript模块)的扩展名,用于不同的环境和目的。


以下是一些示例来说明每个文件扩展名的使用:

  1. .js(JavaScript):
// script.js
function sayHello() {
  console.log("Hello, world!");
}

sayHello();
  1. cjs(commonjs):
// moduleA.js
const message = "Hello, from Module A!";
module.exports = message;

// moduleB.js
const messageA = require("./moduleA");
console.log(messageA);
  1. MJS(ecmascript模块):
// moduleA.mjs
const message = "Hello, from Module A!";
export default message;

// moduleB.mjs
import messageA from "./moduleA";
console.log(messageA);

在第一个示例中,.js文件包含可以在任何JavaScript环境中执行的常规JavaScript代码。

第二个示例演示了使用COMONJS模块的使用。每个文件都被视为一个单独的模块,并且使用模块。Exports语句用于将功能从一个模块曝光到另一个模块。要求语句用于导入导出的功能。

第三个示例展示了eCmascript模块。 MJS扩展名用于指示JavaScript文件遵守Ecmascript模块格式。导出语句用于公开功能,导入语句用于从其他模块导入导出功能。

请注意,CJS或MJS模块的使用取决于所使用的特定JavaScript运行时或环境。

ref