首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS +优化器包括在主文件上定义的模块

RequireJS +优化器包括在主文件上定义的模块
EN

Stack Overflow用户
提问于 2013-09-09 20:55:43
回答 1查看 1.4K关注 0票数 2

我是第一次使用优化,我运行在一些问题或问题。

我正在尝试优化一个主文件,它像我所期望的那样放置了jQuery、主干和需要模块(然后在整个导航中使用)。但是假设我有一个jQuery插件,我在几个视图上都使用了它。我尝试使用build.js文件上的"include“选项将其添加到主文件中。它添加了它(例如jQuery幻灯片),但是当我有一个定义(“jQuery幻灯片”)的视图时(同样是一个例子),浏览器再次加载插件的文件。即使是在主构建的文件上。

这会发生吗?我能修好这个吗?

谢谢。

这是一些代码。希望它有帮助

build.js

代码语言:javascript
复制
{
baseUrl: "javascripts/",
appDir: "..",
dir: "dist",
name: "main-site",

include: ['libs/requirejs/require', jquery-slides'],
insertRequire: ['main-site'],

paths: {
    "main-site": 'main-site',
    'jquery': 'libs/jquery/jquery',
    'jquery-slides': 'libs/jquery/plugins/slides.min.jquery'

}
}

main-site.js

代码语言:javascript
复制
require.config({
baseUrl: "/javascripts/",
paths: {
    'jquery': 'libs/jquery/jquery',
    'underscore': 'libs/underscore/underscore',
    'bootstrap': 'libs/bootstrap/bootstrap.min',
    'datepicker': 'libs/bootstrap/plugins/bootstrap-datepicker',
    'backbone': 'libs/backbone/backbone.max',
    'backbone-paginator': 'libs/backbone/plugins/backbone.paginator',
    'backbone-validation': 'libs/backbone/plugins/backbone.validation',
    'text': 'libs/requirejs/text',
    'templates': '/templates/site',
    'views': 'views/site',
    'jquery-cookie': 'libs/jquery/plugins/jquery.cookie',
    'jquery-raty': 'libs/jquery/plugins/jquery.raty.min',
    'jquery-slides': 'libs/jquery/plugins/slides.min.jquery'
},
shim: {
    'backbone-paginator': ['backbone'],
    'bootstrap': ['jquery'],
    'datepicker': ['bootstrap'],
    'jquery-cookies': ['jquery'],
    'jquery-raty': ['jquery'],
    'jquery-slides': ['jquery'],
    'backbone-validation': ['backbone']
}
});

require([
'app-site'
], function(App) {
$(function(){
    App.initialize();
});
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-10 05:53:11

我建议您不要使用include来声明要构建的模块。通过这种方式,需求将将模块及其所有依赖项打包到优化的包中。

代码语言:javascript
复制
{
    baseUrl: "javascripts/",
    appDir: "..",
    dir: "dist",
    paths: {
        "main-site": 'main-site',
        'jquery': 'libs/jquery/jquery',
        'jquery-slides': 'libs/jquery/plugins/slides.min.jquery'
    },
    modules : [
        {
            name : 'main-site',
        }
    ]
}

进一步考虑因素:

  1. 如果jquery-幻灯片作为依赖项包含在任何模块define(['jquery-slides'], function() {... }中,则不需要使用include指令,因为该模块的所有依赖项都将包含在优化的文件中。 请参阅此链接中模块属性的文档。 https://github.com/jrburke/r.js/blob/master/build/example.build.js#L330
  2. 使用属性mainConfigFile避免重复https://github.com/jrburke/r.js/blob/master/build/example.build.js#L35

祝你好运,我希望这能帮到你

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18706883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档