zoukankan      html  css  js  c++  java
  • SeaJS之shim插件:解决非cmd规范的插件与sea的区别

     

    SeaJS 中的模块默认都遵守 CMD 规范,但现实中已存在大量普通 JavaScript 类库,比如 jQuery、Underscore 等。使用 shim 插件,可以将这些普通 JS 文件转换成 CMD 模块,从而能在 SeaJS 中正常使用。

    seajs.config({
      plugins: ['shim']
    });

    一旦激活后,alias 配置项就可以接受 shim Object 配置。

    seajs.config({
      // 激活 shim 插件
      plugins: ['shim'],
     
      // shim 配置项
      alias: {
        // jQuery 的 shim 配置
        'jquery': {
          src: 'lib/jquery-1.9.1.min.js',
          exports: 'jQuery'
        },
     
        // jquery.easing 插件的 shim 配置
        'jquery.easing': {
          src: 'lib/jquery.easing.1.3.js',
          deps: ['jquery']
        }
      }
    });

    shim Object

    shim Object 是一个对象:

    'key': {
        src: String,
        deps: Array,
        exports: String | Function
      }

    src 是字符串,表示文件路径。

    deps 是数组,指定模块依赖

    exports 表示 require(key) 时应该返回哪个全局变量,比如 jquery 的是返回 jQuery 全局变量。exports 也可以是一个函数:

    'jquery': {
       src: 'lib/jquery-1.9.1.min.js',
       exports: function() {
       return jQuery.noConflict();
      }
    }

    通过 shim 插件,可以加载任何非 CMD 模块。

    说明:一般在config中使用,先激活plugins: [‘shim’],然后在alias中配置要引用的插件,例如jquery等。

    原文;  http://www.k68.org/?p=1192

  • 相关阅读:
    [LeetCode] 1474. Delete N Nodes After M Nodes of a Linked List
    [LeetCode] 1836. Remove Duplicates From an Unsorted Linked List
    [LeetCode] 1642. Furthest Building You Can Reach
    [LeetCode] 872. Leaf-Similar Trees
    [LeetCode] 1720. Decode XORed Array
    445. 两数相加 II
    83.删除链表中的重复元素
    笔试题常见的需要模板
    背包问题
    62.63 不同路径
  • 原文地址:https://www.cnblogs.com/lydialee/p/4815320.html
Copyright © 2011-2022 走看看