liferay 7-不匹配的匿名定义()

liferay 7-不匹配的匿名定义(),liferay,liferay-aui,liferay-7,Liferay,Liferay Aui,Liferay 7,我试图在liferay 7 portlet中包含sockjs(v1.1.2),但收到以下警告: Mismatched anonymous define() module: function ()... 然后库就不会被加载 我将.js文件直接包含在我的liferay-portlet.xml中,如下所示: <header-portlet-javascript>/common/js/sockjs.js</header-portlet-javascript> /common/

我试图在liferay 7 portlet中包含sockjs(v1.1.2),但收到以下警告:

Mismatched anonymous define() module: function ()...
然后库就不会被加载

我将.js文件直接包含在我的liferay-portlet.xml中,如下所示:

<header-portlet-javascript>/common/js/sockjs.js</header-portlet-javascript>
/common/js/sockjs.js

我没有任何办法让它工作

看起来你遇到了一个问题,这个问题已经被解决了。如果您使用的是LIFLERAY 7 DXP SP2+或LIFERAY 7 CE GA4+,您可以简单地打开管理侧栏并选择控制面板>配置>系统设置>基础> JavaScript加载器>不检查暴露全局。如果您没有使用上述Liferay版本之一,则需要遵循的建议。或者,您可以通过手动编辑JS文件来修复此问题。更改
/common/js/sockjs.js中的任何文本,如:

typeof define == 'function'
致:

这将阻止Liferay的AMD加载程序加载文件。

stiemannkj1是正确的

但是,如果您不想接触js库(可能是CDN)的代码,也不想更改配置,则可以执行以下操作(如果您担心多个站点和Portlet可能会影响此行为)


Liferay.Loader.define.\u amd=Liferay.Loader.define.amd;
Liferay.Loader.define.amd=false;
Liferay.Loader.define.amd=Liferay.Loader.define.\u amd;
如果此代码不起作用,请尝试此代码

<script>
    define._amd = define.amd;
    define.amd = false;
</script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script>
    define.amd = define._amd;
</script>

定义。_amd=define.amd;
define.amd=false;
define.amd=define.\u amd;

我通过禁用和重新启用AMD加载程序解决了问题。使用Liferay 7 CE GA4上的控制面板提示解决了问题。谢谢你,你救了我无数次的命,我总是忘记这个把戏!
<script>
    Liferay.Loader.define._amd = Liferay.Loader.define.amd;
    Liferay.Loader.define.amd = false;
</script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script>
    Liferay.Loader.define.amd = Liferay.Loader.define._amd;
</script>
<script>
    define._amd = define.amd;
    define.amd = false;
</script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script>
    define.amd = define._amd;
</script>