web-dev-qa-db-fra.com

Moment.js: Uncaught TypeError: Impossible de lire la propriété 'defineLocale' de undefined at moment.js: 13

Lors de l'exécution du petit fichier html ci-dessous, l'erreur de journal de la console suivante apparaît:

moment.js:13 Uncaught TypeError: Cannot read property 'defineLocale' of undefined
    at moment.js:13
    at moment.js:9
    at moment.js:10

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>JS Bin</title>

    <script src="../scripts/libraries/moment.js"></script>

</head>

<body>


<script>
  var now = moment()
  console.log(now);
</script>

</body>
</html>

J'ai également essayé de remplacer la référence à la bibliothèque locale par ce lien CDN: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/locale/af.js

Quelqu'un sait ce que cette erreur est?

7
Sean Dezoysa

Cela semble être un problème avec votre version de moment.js. Le script que vous avez est uniquement pour locale, vous devez inclure le script moment.js

https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
</head>

<body>
  <script>
    var now = moment()
    console.log(typeof moment.defineLocale)
  </script>
</body>

</html>

17
luisenrike

Cette erreur se produit également lorsque vous incluez les paramètres régionaux js avant le moment js.

Par exemple, le suivant donne une erreur:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/locale/tr.js"></script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

Pour corriger, il suffit de mettre le moment js ci-dessus à la locale js.

2
yılmaz