gpt4 book ai didi

RequireJS + Optimizer 包含在主文件中定义的模块

转载 作者:行者123 更新时间:2023-12-03 17:33:02 25 4
gpt4 key购买 nike

我是第一次使用 Optimizer,我遇到了一些问题。

我正在尝试优化一个主文件,它像我预期的那样放置了 jQuery、Backbone 和 Require 模块(然后在整个导航中使用)。但是,假设我有一个用于多个 View 的 jQuery 插件。我尝试使用 build.js 文件上的“include”选项将它添加到主文件中。它添加了它(例如 jQuery Slides ),但由于我有一个带有 define("jquery-slides") 的 View (再次,一个示例),浏览器再次加载插件的文件。即使它在主构建文件上。

这假设会发生吗?我可以解决这个问题吗?

谢谢。

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

构建.js

{
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'

}
}

主站点.js
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();
});
});

最佳答案

我建议您不要使用 include 来声明要构建的模块。这样,requirejs 会将模块及其所有依赖项打包到优化的包中。

{
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',
}
]
}

进一步的考虑:
  • 如果您的任何模块中都包含 jquery-slides 作为依赖项define(['jquery-slides'], function() {... }您不需要使用 include 指令,因为该模块的所有依赖项都将包含在优化文件中

    请参阅此链接中 modules 属性的文档

    https://github.com/jrburke/r.js/blob/master/build/example.build.js#L330
  • 使用属性 mainConfigFile避免重复https://github.com/jrburke/r.js/blob/master/build/example.build.js#L35

  • 祝你好运,我希望这对你有帮助

    关于RequireJS + Optimizer 包含在主文件中定义的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18706883/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com