博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AMD 规范以及如何将AMD转变为CommonJS
阅读量:5162 次
发布时间:2019-06-13

本文共 1252 字,大约阅读时间需要 4 分钟。

 

 

原文:

CommonJS和AMD的争论已经有很多,而两者也在项目进化和融合。个人看来CommonJS更面向于开发者,对于开发者来说,需要的是清晰的版本和管理,更少的代码和干扰,更少的配置。而AMD在代码中允许匿名模块,模块名称和变量之间关系的不清晰,非就近依赖,冗余依赖定义都不是开发者友好。

 提供了命令行和node模块来将在requirejs中使用的AMD转化为CommonJS格式,方便其他使用CMD或者 node, cortex 等外部系统来使用。

目前的官方AMD提供一下几种方式去定义一个模块:

1) Dependency-free module, simple object

1 define({ 2     add: function(a, b) { return a + b; }3 });

 

没有任何依赖,直接定义模块的exports。这种情况下要将AMD转话为CommonJS模块,只需要变为

1 module.exports = {2     add: function(a, b) { return a + b; }3 };

 

语法树转换非常简单。

2) Simplified CommonJS wrapping

1 define(function (require, exports, module) {2      var a = require('a'),3          b = require('b');4      exports.action = function () {};5  });

 

现在AMD提供CommonJS wrapping这种格式,更为简单。 只需要将factory函数中的函数体提取出来就可以了

1 var a = require('a'),2     b = require('b');3     4 exports.action = function () {};

 

3) Normalized

这个是通常我们见到的AMD格式

1 define(['backbone', './util', 'Buffer'], function(Bakcbone, util) {2     // other process3     return {4        data: {}5    };6 });

 

对于这种格式,处理有两个步骤 1) 将依赖转变为require的形式,中间要注意的是依赖申明和 factory 的参数并不一定一致; 2) 将 return 转变为 module.exports

1 var Backbone = require('backbone');2 var util = require('./util');3 require('Buffer');4 5 module.exports = { data: {} };

 

 

转载于:https://www.cnblogs.com/villadora/p/3767401.html

你可能感兴趣的文章
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>
C# list导出Excel(二)
查看>>
CAS 单点登录模块学习
查看>>
跟着辛星用PHP的反射机制来实现插件
查看>>
Android应用开发-网络编程①
查看>>
input中的name,value以及label中的for
查看>>
静态库制作-混编(工程是oc为基础)
查看>>
jQuery 显示加载更多
查看>>
代理模式
查看>>
Confluence 6 系统运行信息中的 JVM 内存使用情况
查看>>
Confluence 6 升级以后
查看>>
用JS实现版面拖拽效果
查看>>
二丶CSS
查看>>
《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
查看>>
JS一些概念知识及参考链接
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发
查看>>
游戏中的心理学(一):认知失调有前提条件
查看>>