gpt4 book ai didi

javascript - RequireJS 优化器忽略插件

转载 作者:行者123 更新时间:2023-12-03 08:26:55 25 4
gpt4 key购买 nike

我正在编写一个使用托管的 dojo api 的应用程序。我正在使用 AMD 编写应用程序的其余部分,以便与 Dojo 的 amd 加载器很好地配合。我想使用dojo提供的一些AMD加载插件,特别是dojo/i18n进行翻译/

从源代码来看效果很好,但每当我尝试优化代码时,我都会收到“TypeError:无法读取未定义的属性‘正常化’”。我知道它正在尝试加载插件并检查 normalize() 但该插件仅托管且无法下载。

我希望在优化代码时忽略此插件,并在运行时需要正确的翻译文件。

最佳答案

我知道这个问题,就我而言,我在使用 dojo/text 时遇到了麻烦。要解决它,请尝试以下操作:

  1. 在 GitHub 上获取 i18n 的 requirejs 版本 https://github.com/requirejs/i18n/blob/master/i18n.js

  2. 将其包含到您的项目中。最好是将其放置在未部署的子文件夹中。就我而言,它是 ./libs/build/i18n.js (不用担心,它仅用于优化,不会取代 dojo/i18n)

  3. 转到 build.js(构建位于 ./build.js)并将以下项目添加到路径:

      paths: {
    dojo: "empty:",
    dojox: "empty:",
    i18n: "./libs/build/i18n"
    }
  4. 转到您有要求的索引文件(或将其添加到 dojo.config)并添加新别名:

    require({
    aliases:[["i18n", "dojo/i18n"]]
    },
    ["..."],
    function(...){});
  5. 将应用中出现的所有 dojo/i18n!nls/strings.js 替换为 i18n!nls/strings.js,以便实际使用别名。

    define(["dojo/i18n!./nls/strings.js"], function (nls) 

    替换为

    define(["i18n!./nls/strings.js"], function (nls) 

第 5 步之后,requirejs 将识别 i18n 的 requirejs 版本,并且可以实际调用规范化。但您的应用程序仍将使用 dojo/i18n,因为它隐藏在别名中。

希望这会有所帮助。

关于javascript - RequireJS 优化器忽略插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33510557/

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