前言:

CJS、AMD、UMD 和 ESM都是给 Javascript 添加模块化的方法,还有其他方法,但这些是比较通用的。什么?你不知道什么叫模块化?那你肯定写过import * from ''吧,这就已经使用了模块化的技术思想。

ESM (ES 模块, 异步导入,用于浏览器端)

import React from 'react';
复制代码
或者其他更多的import {foo, bar} from './myLib';
...export default function() {// your Function
};
export const function1() {...};
export const function2() {...};

CJS (CommonJS:同步导入模块)

CJS 是 CommonJS 的缩写。经常我们这么使用:

// importing
const doSomething = require('./doSomething.js');
// exporting
module.exports = function doSomething(n) {// do something
}

AMD (asynchronously:异步模块定义)

示例

define(['dep1', 'dep2'], function (dep1, dep2) {//Define the module value by returning a value.return function () {};
});
// "simplified CommonJS wrapping" https://requirejs.org/docs/whyamd.html
define(function (require) {var dep1 = require('dep1'),dep2 = require('dep2');return function () {};
});

UMD(Universal Module Definition:通用模块定义)

(function (root, factory) {if (typeof define === "function" && define.amd) {define(["jquery", "underscore"], factory);} else if (typeof exports === "object") {module.exports = factory(require("jquery"), require("underscore"));} else {root.Requester = factory(root.$, root._);}
}(this, function ($, _) {// this is where I defined my module implementationvar Requester = { // ... };return Requester;
}));

转载于:https://blog.csdn.net/qq_38974163/article/details/120078340

Javascript模块化方法CJS, AMD, UMD,ESM 简洁解释相关推荐

  1. CJS, AMD, UMD,ESM 简洁解释

    前言: CJS.AMD.UMD 和 ESM都是给 Javascript 添加模块化的方法,还有其他方法,但这些是比较通用的.什么?你不知道什么叫模块化?那你肯定写过import * from ''吧, ...

  2. CJS,AMD,UMD和ESM

    JS中加入了模块的概念.其中就有CJS,AMD,UMD,ESM这些模块的出现. CJS cjs是common js的缩写,它的代码语法长这个样子: // importing const doSomet ...

  3. 什么是CJS,AMD,UMD和ESM?

    JS中才加入了模块的概念.其中就有CJS,AMD,UMD,ESM这些模块的出现. CJS cjs是common js的缩写,主要用于服务器端,它的代码语法长这个样子: // importing con ...

  4. 面试 Javascript 中的 CJS, AMD, UMD 和 ESM是什么?

    最初,Javascript 没有导入/导出模块的方法, 这是让人头疼的问题. 想象一下,只用一个文件编写应用程序--这简直是噩梦! 然后,很多比我聪明得多的人试图给 Javascript 添加模块化. ...

  5. 前端模块规范AMD/UMD/CommonJs

    .babelrc文件中的:module设置为false,为什么会要设置成false? 解释:使ES6模块语法转换到另一个模块类型(默认启用"commonjs"). 设置为假则不变换 ...

  6. javascript基础修炼(4)——UMD规范的代码推演

    javascript基础修炼(4)--UMD规范的代码推演 1. UMD规范 地址:https://github.com/umdjs/umd UMD规范,就是所有规范里长得最丑的那个,没有之一!!!它 ...

  7. 在JavaScript中实现yield,实用简洁实现方式。

    原题还是老赵的: http://blog.zhaojie.me/2010/06/code-for-fun-iterator-generator-yield-in-javascript.html 原以为 ...

  8. int argc,char*argv[ ]的简洁解释

    1.(arguments, argument counter(计数个数) 和 argument vector (矢量,带有方向的变量参数,也就是指针) argc命令行输入参数的个数 int main( ...

  9. 暴打JavaScript语法之getElementById()、getElementsByTagName()全能解释

    大家好这里是X

最新文章

  1. Git学习系列之Git的功能特性(从一般开发者的角度和主开发者的角度来剖析)...
  2. 金融零售业务大数据分析解决方案
  3. go语言之进阶篇主协程先退出导致子协程没来得及调用
  4. 随想录(锁的来由和使用)
  5. Matlab箱线图Boxplot横坐标x轴设置
  6. 带来一个react插件的使用方式---- video-react
  7. JZOJ.5325【NOIP2017模拟8.21】九九归一
  8. 微信小程序底部突起半圆设计
  9. Windows Server 2012中的多元密策略
  10. android定位和地图开发实例
  11. 淘宝联盟升级高佣金账户,高返利,淘宝客
  12. ip变更导致连接不到mysql的解决办法
  13. selenium基础②:模拟QQ空间登录
  14. SAP PS 第2节 项目状态及字段选择
  15. 国内可用的 ChatGPT
  16. 2017中国软件技术大会圆满闭幕
  17. via自定义搜索引擎代码_Via浏览器定制进阶
  18. Mycat2分库分表
  19. php 随机获取字母,PHP获取随机数字和字母的步骤大全
  20. java 协作编辑,在线协作编辑器之周报收集

热门文章

  1. kaggle数据集汇总_超全的3D视觉数据集汇总
  2. 小麦移动广告平台:开发者的福音
  3. 图书管理系统(Java实现)[附完整代码]
  4. 数据对比DataCompare系统设计原理
  5. 六 linux用户,群组以及配置文件
  6. 去阿里面试Java岗位,一个Spring问题就给干趴下了
  7. Rhythmbox导入中文歌曲出现乱码解决
  8. 点云 3D 可视化 - Open3D 库
  9. 使echart图的图例对齐且位于下方
  10. numberpicker如何修改显示的条目数_30块钱就能修改里程数,新手如何才能买到靠谱的二手车?...