JS加载文件规范,AMD,commonJS,requireJs

来源:互联网 发布:充值软件的骗局 编辑:程序博客网 时间:2024/05/23 22:29

--------------------------------------------------基本概念-----------------------------------------------------------



不同点:
异步模块定义(AMD) :用于客户端浏览器加载(requireJs实现了AMD规范)
同步模块定义(commonJs):用于服务器端加载(node.js实现了commonJs规范)
相同点:
都是为了解决,不同文件间,变量以及函数名重复,被重写被覆盖的问题。

------------------------------------------commonJs说明---------------------------------------------------------

exports.fn1=functoin(){}//暴露一个方法到一个json对象里面
$obj1=require('JS文件路径')
$obj1就是一个Json对象,里面的方法以及属性都是通过exports暴露的。

------------------------------------------requireJs说明------------------------------------------------------------

配置函数

如果你想改变RequireJS的默认配置来使用自己的配置,你可以使用require.configh函数。config函数需要传入一个可选参数对象,这个可选参数对象包括了许多的配置参数选项。下面是一些你可以使用的配置:

  • baseUrl——用于加载模块的根路径。
  • paths——用于映射不存在根路径下面的模块路径。(的路径相对于来设置,相当于一个独立的模块名)
  • shims——配置在脚本/模块外面并没有使用RequireJS的函数依赖并且初始化函数。假设underscore并没有使用  RequireJS定义,但是你还是想通过RequireJS来使用它,那么你就需要在配置中把它定义为一个shim。
  • deps——加载依赖关系数组

下面是使用配置的一个例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require.config({
    //By default load any module IDs from scripts/app
    baseUrl: 'scripts/app',
    //except, if the module ID starts with "lib"
     paths: {
        lib: '../lib'
    },
    // load backbone as a shim
    shim: {
        'backbone': {
            //The underscore script dependency should be loaded before loading backbone.js
            deps: ['underscore'],
            // use the global 'Backbone' as the module name.
            exports: 'Backbone'
        }
    }
});

在这个例子中把根路径设置为了scripts/app,由lib开始的每个模块都被配置在scripts/lib文件夹下面,backbone 加载的是一个shim依赖。


0 0