我正在尝试将 EmberJS 应用程序嵌入到广泛使用 RequireJS 库的大型门户应用程序中。我正在使用 ember-cli 来构建项目。构建的应用程序由两个文件组成,dist/assets/vendor.js
and dist/assets/myapp.js
。 EmberJS 应用程序在嵌入后可以工作,但门户应用程序的 JavaScript 会中断。
经过一番研究后我发现问题是vendor.js
定义自己的变量require
, requirejs
, requireModule
and define
这与全局命名空间中的网站变量冲突。这myapp.js
文件然后包含define
加载应用程序模块的语句。
有没有办法重命名它们或将它们放入不同的名称空间中?
我想出的唯一解决方案是手动重命名两个变量中的变量.js
文件。这似乎可行,但相当麻烦,如果可以自动化那就太好了。我还发现了有关使用 RequireJS 优化器的信息,但我无法让它与vendor.js
file.
你能帮助我吗?
谢谢!
我遇到了同样的问题,经过多次搜索,我相信我通过添加解决了这个问题余烬需求 https://www.npmjs.com/package/ember-derequire插件到我的项目:
ember install ember-derequire
这会将应用程序中的所有“require”和“define”语句更改为“eriuqer”和“enifed”。如果您不喜欢 eriuqer 和 enifed,您可以使用选项覆盖它映射的内容(注意您必须使用相同长度的内容)。
如果这没有帮助,我发现的另一个有希望的事情是加载器.js https://github.com/ember-cli/loader.js有一个 noConflict() 函数,但我无法弄清楚在哪里放置 loader.noConflict() 调用,或者让构建使用备用名称生成代码,但如果第一个选项不起作用,也许它会对您有所帮助对于你的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)