gpt4 book ai didi

javascript - 将数组传递给 requirejs shim

转载 作者:行者123 更新时间:2023-11-30 21:19:28 29 4
gpt4 key购买 nike

我正在尝试获取与 magento 2 requirejs 一起使用的常量联系人脚本。 (我尝试将其内联添加,但它会发生冲突并导致错误)

他们的脚本需要数组 localizedErrMapjQuery 对象。

我创建了 localizedErrMap.js

define([],
function(){
var localizedErrMap = {};
localizedErrMap['required'] = 'This field is required.';
localizedErrMap['ca'] = 'An unexpected error occurred while attempting to send email.';
localizedErrMap['email'] = 'Please enter your email address in name@email.com format.';
localizedErrMap['birthday'] = 'Please enter birthday in MM/DD format.';
localizedErrMap['anniversary'] = 'Please enter anniversary in MM/DD/YYYY format.';
localizedErrMap['custom_date'] = 'Please enter this date in MM/DD/YYYY format.';
localizedErrMap['list'] = 'Please select at least one email list.';
localizedErrMap['generic'] = 'This field is invalid.';
localizedErrMap['shared'] = 'Sorry, we could not complete your sign-up. Please contact us to resolve this.';
localizedErrMap['state_mismatch'] = 'Mismatched State/Province and Country.';
localizedErrMap['state_province'] = 'Select a state/province';
localizedErrMap['selectcountry'] = 'Select a country';

return localizedErrMap;
}
);

并制作了这个requirejs-config.js

var config = {
"shim": {
"constantcontact": {
"deps":["jquery", "localizedErrMap"],
"depnames":["jQuery", "localizedErrMap"]
}
},
"paths": {
"localizedErrMap": "js/localizedErrMap",
"constantcontact": "https://static.ctctcdn.com/h/contacts-embedded-signup-assets/1.0.2/js/signup-form"
}

};

然后在页面中用这样的常量联系方式调用它:

<script>
require(["constantcontact"]);
</script>

他们的脚本抛出错误:

Uncaught ReferenceError: localizedErrMap is not defined

我不能修改他们的代码,因为它在异地,我需要确保这个数组传递给代码。我做错了什么,我如何确保数组通过?

最佳答案

您在 shim 中使用的 depnames 数组不是 RequireJS 支持的。我能找到的唯一引用是在一份问题报告中,有人 suggested支持这样的选择,但从未实现。

看起来constantcontact不是AMD模块,希望在全局空间中找到一个符号localizedErrMap。通常,您有几种选择:

  1. 您可以在构建应用程序的方式中添加一个构建步骤,以围绕 constantcontact 中的代码添加一个define 调用,从而有效地将它变成一个 AMD-模块。 wrapShim r.js 的选项对此很有用。但是,你说你不能修改它,所以这个选项不在考虑范围之内。

  2. 您可以故意泄漏 localizedErrMap。这种泄漏有时是使用非 AMD 库的可行解决方案。我宁愿避免它,但也有无法避免的情况。

关于javascript - 将数组传递给 requirejs shim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45337087/

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