webpack`this`没有指向窗口(Chart.js中断)
webpack `this` not pointing to window (Chart.js breaks)
我刚刚开始玩Webpack,并将一个较旧的应用程序从一组繁重的任务迁移到使用Webpack。到目前为止,它看起来很好,但我不知道如何让chart.js在这种情况下工作。
Chart.js正在尝试注册一个全局变量Chart
,如下所示:
(function(){
"use strict";
//Declare root variable - window in the browser, global on the server
var root = this,
previous = root.Chart;
//Occupy the global variable of Chart, and create a simple base class
var Chart = function(context){
// some stuff
}
root.Chart = Chart;
这实际上会中断,因为在webpack中运行时,this
是undefined
,而不是窗口或全局。
它引起的错误在行
root.Chart = Chart;
并说:
Uncaught TypeError: Cannot read property 'Chart' of undefined
有没有可能,我可以让Chart.js在不修补其源代码的情况下运行?事实上,它到处都在使用this
技巧,我希望将来能够更新chart.js。
尝试使用导入加载程序来调整依赖上下文,如下所示:
安装带有npm install imports-loader
的装载机
并将其添加到webpack配置中的加载程序中:
{
test: require.resolve('chart.js'),
use: 'imports-loader?this=>window'
}
相关文章:
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 更改使用Chart.js创建的图表中的轴线颜色
- 用chart.js绘制条形图
- chart.js 2.0为数据集添加了新属性
- Chart.js V2折线图缺点
- Chart.js极地图的比例不对
- 将gif图像添加到chart.js V2.0中
- Chart.js条形图:网格颜色和隐藏标签
- 与React Native的Chart.js等效
- Chart.js 2.1.2条形图动画问题
- Chart.js-添加渐变而不是纯色-实现解决方案
- 如何在标签上输出Chart.js雷达图的正确值
- 如何在Chart.JS 2.0上使用tooltipTemplate
- 将时间缩放添加到折线图(Chart.js)
- 是否可以使用Chart.js缩短雷达图上的外部标签,而不影响其他标签
- Chart.js折线图的0线型
- AngularJS选项卡集中的Chart.js不呈现
- Chart.js:将对象而不是int值作为数据传递
- 如何在chart.js中显示圆环图上的标签
- chart.js在我的本地主机上运行良好,但无法在线运行