javascript - Chart.js - Moment.js 找不到!您必须将其包含在 Chart.js 之前才能使用时间刻度

标签 javascript angularjs node.js chart.js

我正在尝试显示一个显示过去 30 天数据的图表。该图表在我的 webpack 开发服务器上运行时有效。然而,当我构建它时它失败了(npm run build)。它产生的错误是:

("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com")

我已经检查了在 Google 上能找到的所有可能的解决方案,但似乎都无法解决该问题。我已按要求包含了 moment.js,但这会引发大量新错误,其中最主要的是 moment.js 中未定义 window。我还应该注意,当我检查浏览器中的元素时,此错误显示:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://internal-server:5000/api/service_info/tt?severity=2. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

我不认为这是原因,因为我成功地向后端的其他 API 发出 GET 请求,并且它们不会抛出此错误。更重要的是,启用了CORS。下面包含相关代码。

谢谢

let ctx = document.getElementById("canvas");
        this.chart = new Chart(ctx, {
          type: 'line',
          data: {
            labels: all_dates,
            datasets: [
              {
                data: cummulative_sums,
                borderColor: '#3cba9f',
                fill: false,
                label: 'Failures in past 30 days'
              },
              {
                data: comparison_cummulative_sums,
                borderColor: '#ce5fc3',
                fill: false,
                label: 'Failures 30 days prior'
              }
            ]
          },
          options: {
            legend: {
              display: true
            },
            scales: {
              xAxes: [{
                display: true
              }],
              yAxes: [{
                display: true
              }],
            }
          }
        });

最佳答案

Chart.js 有以下两个版本:

独立构建

文件:

dist/Chart.js
dist/Chart.min.js

捆绑构建

文件:

dist/Chart.bundle.js
dist/Chart.bundle.min.js

独立构建不包含 moment.js,您必须包含它,但捆绑构建包含 moment.js。

添加捆绑版本将包含并修复问题:

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.bundle.min.js"></script>

关于javascript - Chart.js - Moment.js 找不到!您必须将其包含在 Chart.js 之前才能使用时间刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51196855/

相关文章:

javascript - Angularjs 服务单元测试

javascript - 使用 node.js 上传后解析 CSV 的第一行

node.js - 在代理后面使用 Node gyp 安装 bcrypt

使用 AngularJS 进行 JQuery 布局

angularjs - angularJS - 非依赖服务之间的通信

javascript - AngularJS 复选框过滤不过滤页面加载

javascript - 我应该绑定(bind)内置的 React 方法吗?

javascript - Rails js 文件和页面特定的 js

javascript - 用动态空白比较两个字符串的最快方法?

javascript - jQuery 工具提示在 .click 上而不是在 Chrome 扩展中悬停