requirejs HTML结构

时间:2013-12-14 02:24:56

标签: requirejs gruntjs

我知道我们可以将requirejs组合文件合并到一个js文件中。 如下面的配置。

module.exports = {
      baseUrl: 'js/',
      mainConfigFile: 'src/js/common.js',
      dir: 'scripts/',
      optimize: 'uglify2',
      modules: [
        {
          name: 'common',
          include: [
              'jquery',

          ]
        }

      ]
    };

我的结果是一个文件

common.js
----------------
jquery.js
modernizr.js
common.js

我的问题是,我们是否还需要在scripts文件夹中放置require.js文件并使用以下格式

 <script data-main="scripts/common" src="scripts/require.js"></script>

或者我们可以使用

 <script src="scripts/common.js"></script>

将文件压缩成一个文件?

1 个答案:

答案 0 :(得分:2)

您仍然需要加载require.js通常的方式来实际使用它提供的模块加载优势,特别是如果您经常使用异步功能。但是,您可以查看almond,前提是您的代码使用AMD和(from the README):

  
      
  • 将所有模块优化为一个文件 - 无动态代码加载。
  •   
  • 所有模块在其define()调用中都有ID和依赖关系数组 - RequireJS优化器会为您处理这个问题。
  •   
  • 只有一个 requirejs.config()或require.config()调用。
  •   
  • 请勿使用RequireJS multiversion support/contexts
  •   
  • 请勿使用require.toUrl()或require.nameToUrl()。
  •   
  • 不要使用packages/packagePaths config。如果你需要   使用具有主要属性的包,   volo可以创建适配器模块   没有这个配置它可以工作。使用amdify add命令   将依赖项添加到项目中。
  •   

杏仁很棒,因为它根本不需要require.js;它自己包装了你自己的代码,这是一个非常小的AMD加载器框架,远不及主库那么强大。然后,您将获得一个可以直接在HTML中链接的优化文件:

<script src="scripts/common.js"></script>

almond的Gruntfile配置可能如下所示:

compile: {
    options: {
        name: 'path/to/almond',
        baseUrl: 'js',
        include: ['main'],
        insertRequire: ['main'],
        mainConfigFile: 'scripts/config.js',
        out: 'scripts/main.js',
        optimizeAllPluginResources: true,
        wrap: true
    }
}

以上是所有标准r.js样板文件,您可以在杏仁主页上找到更多示例。