[英]Can't access global SCSS variables in Storybook with Webpack + React
[英]Creating global variables in React/ Webpack
我有一个需要加载的外部库,并且能够在我的应用中引用。 该库在NPM上不可用,因此我不能像在其他插件上那样将其导入到应用程序的顶部。 在寻找最佳解决方法后,似乎在webpack中创建全局变量是访问该库的最佳方法,但是我在网上找到的有限文档并不十分清楚。 这是我所做的:
在我的webpack.config文件中,我在下面添加了以下行:
new webpack.ProvidePlugin({
MarketingCloud: "../src/scripts/marketing-cloud-javascript-sdk/marketing_cloud",
}),
我的理解是,上面的行使我可以访问此脚本中的函数,因为它现在已定义为全局变量,但是当我尝试在自己的组件之一中包含onclick函数时,我收到未定义MarketingCloud的错误消息。 如果我将其更改为window.MarketingCloud,它将呈现出页面,但onclick函数会给我定义合理的错误。
我正在使用使用webpack / babel的create-react-app样板。 如果有帮助,这是我要添加的文件的内容,我在顶部添加了导入jQuery,以删除一些未定义的jQuery错误:
import {$, jQuery} from 'jquery';
(function($) {
window.MarketingCloud = {
env: {},
wsse: new Wsse(),
/** Make the api request */
/* callback should follow standard jQuery request format:
* function callback(data)
*/
makeRequest: function (username, secret, method, params, endpoint, callback)
{
var headers = MarketingCloud.wsse.generateAuth(username, secret);
var url = 'https://'+endpoint+'/admin/1.4/rest/?method='+method;
$.ajax(url, {
type:'POST',
data: params,
complete: callback,
dataType: "json",
headers: {
'X-WSSE': headers['X-WSSE']
}
});
}
};
})(jQuery);
任何帮助深表感谢!
不要尝试将其附加到窗口对象-而是export default MarketingCloud
。 引用Webpack文档(重点是我的):
自动加载模块。 每当在模块中将标识符作为自由变量遇到标识符时,就会自动加载该模块,并用已加载模块的导出 (具有此属性的属性,以支持命名的导出) 填充标识符 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.