gpt4 book ai didi

javascript - 嵌入式 ember-cli 项目与 RequireJS 冲突

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:29 28 4
gpt4 key购买 nike

我正在尝试将一个 EmberJS 应用程序嵌入到一个广泛使用 RequireJS 库的大型门户应用程序中。我正在使用 ember-cli 来构建项目。构建的应用程序包含两个文件,dist/assets/vendor.jsdist/assets/myapp.js。 EmberJS 应用程序在嵌入后可以正常工作,但门户应用程序的 javascript 中断。

经过一些研究我发现问题是 vendor.js 定义了它自己的变量 require, requirejs, requireModuledefine 与网站在全局命名空间中的变量冲突。 myapp.js 文件然后包含加载应用程序模块的 define 语句。

有没有办法重命名它们或将它们放入不同的命名空间?

我想到的唯一解决方案是手动重命名两个 .js 文件中的变量。这似乎可行,但它相当麻烦,如果它可以自动化,那就太好了。我还发现了有关使用 RequireJS 优化器的信息,但我无法让它与 vendor.js 文件一起工作。

你能帮帮我吗?谢谢!

最佳答案

我遇到了同样的问题,经过大量搜索我相信我设法通过添加 ember-derequire 来解决它。添加到我的项目:

ember install ember-derequire

这会将您应用中的所有“require”和“define”语句更改为“eriuqer”和“enifed”。如果您不喜欢 eriuqer 和 enifed,您可以使用选项覆盖它映射到的内容(注意您必须使用相同长度的内容)。

如果这没有帮助,我发现的另一个有希望的事情是 loader.js有一个 noConflict() 函数,但我不知道在哪里放置 loader.noConflict() 调用,或者让构建使用备用名称生成代码,但如果第一个选项不起作用,它可能会对你有所帮助适合你的情况。

关于javascript - 嵌入式 ember-cli 项目与 RequireJS 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27042145/

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