我试图弄清楚如何在不使用模块本身的相对路径的情况下命名模块。
例如:
而不是这样做:
//module is defined in app/js/routers.js
define('app/js/routers',['app/js/currentView'],function(currentView) {
});
我宁愿这样做:
//module is defined in app/js/routers.js
define('routers',['app/js/currentView'],function(currentView) {
});
这是可能的还是一个坏主意?显然,您为每个模块提供的名称必须是唯一的。我想我只是不知道定义调用中可选第一个参数的看点,如果它必须与它所包含的脚本路径相同。
答案 0 :(得分:1)
我想如果必须与它所包含的脚本路径相同,那么我就不会看到定义调用中可选第一个参数的看点。
是的,如果您要将模块放在一个文件中,该文件的路径(相对于您在RequireJS配置中提供的baseURL
是模块的名称,那么您不> em>必须为define
提供模块名称。实际上,在这种情况下,不应该给出模块名称。 RequireJS documentation州:
这些[即模块名称]通常由优化工具生成。您可以自己明确命名模块,但它使模块的可移植性降低 - 如果将文件移动到另一个目录,则需要更改名称。 通常最好避免在模块的名称中编码,只需让优化工具在模块名称中刻录。优化工具需要添加名称,以便可以捆绑多个模块一个文件,以便在浏览器中加快加载速度。
(强调补充。)