zoukankan      html  css  js  c++  java
  • 云平台项目--学习经验--打包压缩工具requirejs

    requirejs是一个JavaScript模块加载器。适合在浏览器中国使用,也可以在其他脚本环境使用,它鼓励了代码的模块化。使用RequireJS加载模块化脚本将提高代码的加载速度和质量。
    如何加载RequireJS呢?
      假如项目中的JS都放在一个"script"目录下,例如有个index.html和一些script,则该布局如下:
      项目目录:
      ·index.html
      ·scripts/
        ·main.js
        ·helper/
          ·until.js
    添加require.js到scripts目录下,则该目录如下:
      ·index.html
      ·scripts/
        ·main.js
        ·require.js
        ·helper/
          ·until.js
    为了充分利用该优化工具,可将所有的scripts放到HTML外面,然后只引用RequireJS来请求加载其他script:
    可以只写一个main.js,通过它来加载你所需要运行的scripts,这可以保证你所需要的Scripts都是在这里加载的。
    例如:
    <!DOCTYPE html>
      <html>
        <head>
          <title>REQUIREJS</title>
          <script data-main="scripts/main" src="scripts/require.js"></script>
        </head>
        <body>
          <h1>test</h1>
        </body>
    </html>

    RequireJS以一个相对baseUrl的地址来加载所有代码,页面顶层<script>标签含有一个特殊的属性data-main,require.js用它来启动脚本加载过程,而baseUrl一般设置与该属性相一致的目录。下列示例中展示了baseUrl的设置:
    <script data-main="scripts/main.js" src="scripts/require.js"></script>
    baseUrl可以通过RequireJS config手动设置。如果没有显式指定config以及data-main,默认boseUrl包含RequireJS那个HTML页面所属的目录。

    实际应用中,可将项目库和第三方库分开,为一扁平结构。
    如:
      ·index.html
      ·js/
      ·app/ *项目库*
        ·sub.js
      ·lib/ *第三方库*
        ·jquery.js
        ·canvas.js
      ·app.js

    则index.html:
    <script data-main="js/app.js" src="js/require.js"></script>

    app.js:
    requirejs.config({
      baseUrl: 'js/lib',
      paths: {
      app: '../app'
      }
    });
    requirejs(['jquery', 'canvas', 'app/sub'],
    function ($, canvas, sub) {

    });

    在实际项目中,是这样的:
    ·web/
      ·default.html
      ·js/
        ·第三方库
      ·module_js/
        ·原生js
        ·main.js
    在main.js中,首部写法如下:
    require(["Log","Play"....],function(doc,inc,Log....){内容函数}); //注意没有后缀

    而在default.html中,首部写法如下:
    通过定义一个require:
    var require = {
      baseUrl: "module_js", //baseUrl
      urlArgs: '1.8.4',
      map:{
        "*":{
          css:"../js/css"
          }
        }  
    };
    require.paths={
      "jasmine":"../spec/jasmine-2.5.2/jasmine",
      "jasmine-html":"../spec/jasmine-2.5.2/jasmine-html",
      "runJasmine":"../spec/test/run",
      "jquery":"../js/jquery.min",
    ....................
    };

  • 相关阅读:
    安卓项目文件夹解析
    网页嵌入腾讯视频方式
    Thinkphp3.23 连接MSSQL方法
    .NET 出现参数化查询 需要参数但未提供该参数的错误
    .NET 原理之 ViewState
    VS2012创建WebForm项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
    及时返回,业务逻辑异步实现
    linux常用命令
    ES报错引发的问题
    mall项目遇到的异常
  • 原文地址:https://www.cnblogs.com/xizhu/p/9783908.html
Copyright © 2011-2022 走看看