gpt4 book ai didi

javascript - RequireJS:构建单个文件时如何排除某些路径?

转载 作者:可可西里 更新时间:2023-11-01 01:22:33 26 4
gpt4 key购买 nike

我有一个使用 RequireJS 2.1.8 的 Backbone 应用程序(即,我所有的 Backbone View 都使用 define() 来指定它们的依赖项)。一切正常,现在我正在尝试使用 r.js(通过 NPM 安装)将我所有的 JavaScript 连接/缩小到一个文件中。

我如何设置排除以特定路径开头的依赖项的 r.js 配置?

我在下面包含了我的 main.js 文件。在这种情况下,我希望“构建的”输出文件排除第 3 方库(即 jquery、backbone 等)。此外,我想排除任何以“webapp/”开头的依赖项(例如,“webapp/dynamic_cfg”,这会导致向我的 Djang 应用程序发送动态生成的 JavaScript 文件/模块的请求)。

文件夹结构:

|--static/
|--main.js
|--myapp/
|--views/
|-- MyView.js
|-- ...
|--lib
|--backbone-1.0/
|--underscore-1.5.1/
|-- ...

index.html(Django 模板):

<script src="{% static 'lib/requirejs-2.1.8/require.min.js' %}" data-main="{% static 'main.js' %}" ></script>

主要.js:

requirejs.config({

paths: {
"jquery": 'lib/jquery-1.10.2/jquery.min',
"text_loader": 'lib/requirejs-text-2.0.10/requirejs-text',
"fuelux": 'lib/fuelux-2.3.1',
"backbone": 'lib/backbone-1.0/backbone.min',
"underscore": 'lib/underscore-1.5.1/underscore.min',

// Any module that requires 'webapp/*' will result Require.js
// making a request to the server webapp.
"webapp": '..'
},

shim: {

'backbone': {
deps: ['underscore', 'jquery'], // Load these dependencies first
exports: 'Backbone' // Create global var with this name for the module
},
'underscore': {
exports: '_'
}
}

});

// Startup
require(['webapp/dynamic_cfg', 'myapp/util/logger', 'myapp/view/AppView', 'myapp/AppRouter', 'fuelux/all'],

// Dependencies are loaded and passed to this function
function(cfg, logger, AppView, AppRouter, fuelUx) {

logger.info("Starting up with config:", cfg);

var appView = new AppView();
var appRouter = new AppRouter();
}
);

最佳答案

在我的 r.js 配置中将路径设置为“空:”有效。示例:

// This is a RequireJS config file
(function(){
return {

// Name of input file (without the .js extention)
"name": "main",

// Directory containing input file
"baseUrl": "static/",

// Look in this file for the require.config() call and extract it
"mainConfigFile": "static/main.js",

"paths": {
// Don't attempt to include dependencies whose path begins with webapp/
"webapp": "empty:",

// Ditto for the following 3rd-party libraries
"jquery": "empty:",
"fuelux": "empty:",
"backbone": "empty:",
"underscore": "empty:"
},

"optimize": "uglify2",
};
})()

关于javascript - RequireJS:构建单个文件时如何排除某些路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18468803/

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