【问题标题】:Error while Importing Moment.js to HTML Document将 Moment.js 导入 HTML 文档时出错
【发布时间】:2023-01-18 05:02:29
【问题描述】:

当我尝试使用将 Moment.js 导入 HTML 文档时

<script src="https://unpkg.com/moment@2.29.4/min/moment.min.js"></script>

我每次都会在浏览器控制台中收到此消息:(均在 Firefox 和 Chrome 中测试) Uncaught Error: failed to require "moment/moment" 是什么导致了这个错误?

我试过 CDNJS、Unpkg 和 JSDelivr。我也尝试过以前版本的 Moment.js。

【问题讨论】:

  • 如果您使用的是节点,可能不应该那样做。阅读模式here
  • 当您导入 moment 或尝试使用它时,控制台会返回错误吗?你如何使用它?
  • @AlTheLazyMonkey 刚导入时控制台返回错误。
  • @FiddlingAway 我只使用 HTML 和 JS。我通过 <script> 标签将 npm 包嵌入到网页中。
  • 你能为你的问题创建一个简化的小提琴或笔,这样我们就可以试着找出是什么原因造成的吗?

标签: javascript html node.js momentjs


【解决方案1】:

看来问题出在 moment-jalaali 库中。作为替代方案,您可以尝试 jalaali-moment 库(一些 moment-jalaali 作者也参与其中)。

出于测试目的,您可以尝试this fiddle - 您的代码已调整为使用 jalaali-moment 库。小提琴内容也在以下 SO sn-p 中。

var d = new Date()
    var jalaali = new Intl.DateTimeFormat('en-AU-u-ca-persian', {
      year: 'numeric',
      month: 'numeric',
      day: 'numeric',
      timeZone: 'Europe/Istanbul'
    }).format(d).split('/');
    var hijri = new Intl.DateTimeFormat('en-AU-u-ca-islamic-umalqura', {
      year: 'numeric',
      month: 'numeric',
      day: 'numeric',
      timeZone: 'Europe/Istanbul'
    }).format(d).split('/');
    var month = parseInt(hijri[1]);
    switch (month) {
      case 1:
        month = 'Muyaram';
        break;
      case 2:
         month = 'Safar';
        break;
      case 3:
        month = 'Rabamah';
        break;
      case 4:
        month = 'Rabafer';
        break;
      case 5:
        month = 'Jazamah';
        break;
      case 6:
        month = 'Jazafer';
        break;
      case 7:
        month = 'Rajab';
        break;
      case 8:
        month = 'Shaban';
        break;
      case 9:
         month = 'Ramadan';
        break;
      case 10:
        month = 'Shawil';
        break;
      case 11:
        month = 'Zulqat';
        break;
      case 12:
        month = 'Zulgach';
    }
    var jalaaliMoment = moment(d, 'jD/jM/jYYYY');
    var result = hijri[0] + '/' + jalaaliMoment.jDayOfYear() + ' ' + month + ' ' + jalaali[2];
    document.getElementById("dt").innerHTML = result;
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Irshatovan Calendar</title>
</head>
<body>
  <h2 id="dt"></h2>
  <script src="https://unpkg.com/moment@2.29.4/min/moment.min.js"></script><!-- Moment.js importing problem. -->
  <script src="https://unpkg.com/jalali-moment/dist/jalali-moment.browser.js"></script>
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多