Requirejs require.js+;cldrjs为什么重命名配置路径条目会破坏它? 总结

Requirejs require.js+;cldrjs为什么重命名配置路径条目会破坏它? 总结,requirejs,cldr,Requirejs,Cldr,下面的重命名(s/cldr/cldrjs)中断了加载功能 require.config({ 路径:{ -cldr:“./bower_components/cldrjs/dist/cldr” +cldrjs:“./bower_components/cldrjs/dist/cldr” } }); 要求([ -“cldr”, -“cldr/补充文件” +“cldrjs”, +“cldrjs/补充文件” ],功能(Cldr){ log(“Cldr实例”,新的Cldr(“en”); },函数(){ 安装

下面的重命名(s/cldr/cldrjs)中断了加载功能

require.config({
路径:{
-cldr:“./bower_components/cldrjs/dist/cldr”
+cldrjs:“./bower_components/cldrjs/dist/cldr”
}
});

要求([ -“cldr”, -“cldr/补充文件” +“cldrjs”, +“cldrjs/补充文件” ],功能(Cldr){ log(“Cldr实例”,新的Cldr(“en”); },函数(){

安装程序 安装库

bower安装cldrjs requirejs

你应该得到:

cldrjs/tmp/cldrjs
├── cldrjs#0.3.2无关
└── requirejs#2.1.11无关

用法 打开
index.html
(可在上找到)。Require.js应该加载Cldr,并且您的控制台应该记录它的一个实例,例如:

Cldr实例对象{attributes={…},locale=“en”,supplemental=function(),more…}

问题: 为什么重命名会破坏它?

为了让您更方便,我已经放置了两个主文件(可在上找到)。只需更改引用即可对其进行测试

——a/index.html
+++b/index.html
@@ -4,7 +4,7 @@
-    
+

花椒 一条值得知道的信息

cldr.js的标题:(可访问)

define(函数(){
//实现…是的,没有依赖关系。
})

cldr/supplemental.js的标题:(可访问)


定义([“./cldr”],函数(){
//实现…依赖项是上面的cldr.js文件。
})

我在IRC上与@jrburke聊天,他指出

`../cldr'首先作为ID相对于'supplemental'进行解析,最终在ID中出现'cldr',然后转换为路径 但由于该路径已用于一个名为“cldrjs”的模块(这是一个问题),因此在该路径中找不到“cldr”模块 在我建立项目后,会有更多 但我认为最终的结果是,您将希望使用map或packages配置

解决方案:

一般的经验法则是:如果包只包含一个JS模块,那么路径配置就足够了。如果包包含多个模块(如本例中所示),那么包配置通常更适合 除非包管理器了解前端模块


谢谢@jrburke

想知道@jrburke+jrburke是否能告诉我哪里会出错……谢谢