gpt4 book ai didi

javascript - RequireJS:何时使用 'paths' 与 'packages'

转载 作者:数据小太阳 更新时间:2023-10-29 03:51:22 27 4
gpt4 key购买 nike

我应该在 RequireJS 中使用 paths 还是 packages?是否有这方面的最佳实践,或者是否有特定的时间我应该考虑使用一个而不是另一个?

我已经按照文档进行了操作,并且想到了这个:

// main.js
requirejs.config({
enforceDefine: true,
urlArgs: "bust=" + (new Date()).getTime(),
baseUrl: "./js",
waitSeconds: 7,
paths: {
"jquery": [
'jquery'
],
"underscore": [
'underscore'
],
"backbone": [
'backbone'
],
"handlebars": [
'handlebars'
]
},
shim: {
"underscore": {
deps: [],
exports: "_"
},
"backbone": {
deps: ["jquery", "underscore"],
exports: "Backbone"
},
"handlebars": {
deps: [],
exports: "Handlebars"
}
} // End shim

}); // End config


// List all files; use 'define()' and not 'require()' because of shim
define([
'jquery',
'underscore',
'backbone',
'handlebars'
], function ($, _, Backbone, Handlebars)
{
console.log("$: " + typeof $);
console.log("_: " + typeof _);
console.log("Backbone: " + typeof Backbone);
console.log("Handlebars: " + typeof Handlebars);
}
); // End define

但是,我观看了 Jesse Warden (http://css.dzone.com/articles/video-basics-requirejs) 的视频,他的大部分代码似乎都使用了这种风格:

// main.js
requirejs.config({
urlArgs: "bust=" + (new Date()).getTime(),
baseUrl: "./js",
waitSeconds: 7,
packages: [
'main',
{
name: 'jquery',
location: 'libs/jquery',
main: 'jquery'
},
{
name: 'underscore',
location: 'libs/underscore',
main: 'underscore'
},
{
name: 'backbone',
location: 'libs/backbone',
main: 'backbone'
},
{
name: 'handlebars',
location: 'libs/handlebars',
main: 'handlebars'
}
]
}); // End config

那么正确的做法是什么?我应该使用 paths 还是 packages?此外,还有一个 modules 配置。什么时候使用模块

最佳答案

单词packages 指的是标准CommonJS ,因为 requirejs 支持加载位于 CommonJS Packages 目录结构中的模块,并且模块本身应该采用 RequireJS 可以理解的模块格式。

路径配置可以用于目录和文件(.js、requirejs 模块)。有点困惑,因为正如您所说,您可以使用包来加载非标准的 CommonJS 包。

When do I use modules?

requirejs 中声明的所有内容:define('name', callback); 都是一个模块

希望这个回答对您有所帮助。

关于javascript - RequireJS:何时使用 'paths' 与 'packages',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18070356/

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