【问题标题】: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>

正文>

标签: requirejs cldr


【解决方案1】:

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

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

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

解决方案:

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

谢谢@jrburke

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2014-09-15
    相关资源
    最近更新 更多