require.js + cldrjs 为啥重命名配置路径条目会破坏它?

Posted

技术标签:

【中文标题】require.js + cldrjs 为啥重命名配置路径条目会破坏它?【英文标题】:require.js + cldrjs Why renaming a config paths entry break it?require.js + cldrjs 为什么重命名配置路径条目会破坏它? 【发布时间】:2014-04-08 22:06:36 【问题描述】:

总结

下面的重命名 (s/cldr/cldrjs) 破坏了加载功能。

require.config( paths: - cldr: "./bower_components/cldrjs/dist/cldr" + cldrjs: "./bower_components/cldrjs/dist/cldr" );

要求([ - “cldr”, - “cldr/补充” + "cldrjs", +“cldrjs/补充” ],函数(Cldr) console.log("Cldr 实例", new Cldr("en")); , 功能()

设置

安装库。

bower install cldrjs requirejs

你应该得到:

cldrjs /tmp/cldrjs ├── cldrjs#0.3.2 extraneous └── requirejs#2.1.11 extraneous

用法

打开index.html(可在https://gist.github.com/rxaviers/10194312 获得)。 Require.js 应该加载 Cldr,并且你的控制台应该记录它的一个实例,例如:

Cldr instance Object attributes=..., locale="en", supplemental=function(), more...

问题

为什么重命名会破坏它?

为了方便您,我已经放置了两个主要文件(可在https://gist.github.com/rxaviers/10194312 获得)。只需更改引用即可对其进行测试。

--- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge"> </head> <body> - <script data-main="main.cldr.js" src="bower_components/requirejs/require.js"></script> + <script data-main="main.cldrjs.js" src="bower_components/requirejs/require.js"></script>

正文>

【参考方案1】:

https://github.com/jrburke/requirejs/issues/1084#issuecomment-40112805

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

`../cldr' 相对于'supplemental'首先被解析为一个ID,最终在ID中以'cldr'结束,然后将其转换为路径 但由于该路径已用于名为“cldrjs”的模块,这是一个问题,在其中找不到“cldr”模块 在我建立项目之后 但我认为最终结果是您将要使用地图或包配置

解决方案:

一般的经验法则是:如果包只包含一个 JS 模块,那么路径配置就足够了。如果它包含多个模块(在这种情况下)包配置通常更合适 除非包管理器知道前端模块

谢谢@jrburke

【讨论】:

以上是关于require.js + cldrjs 为啥重命名配置路径条目会破坏它?的主要内容,如果未能解决你的问题,请参考以下文章

为啥视频重命名以后文件格式不支持

文件夹为啥无法重命名?

为啥这不重命名我的文件? [复制]

为啥 R8 不重命名所有方法和类?

为啥我重命名后无法访问 pandas 中的列? [复制]

为啥方法重命名在 PHP 特征中不起作用?