Uncaught ReferenceError: Moment is Not Defined - Solved

By Henri Parviainen

Moment.js ReferenceError: moment is not defined

Introduction

If you've ever encountered the dreaded Uncaught ReferenceError: moment is not defined error message in your web development project, you're not alone. This error typically occurs when you're working with JavaScript and trying to use the Moment.js library for date and time manipulation. However, this error doesn't mean your project is doomed; it's just a hiccup that can be easily resolved. In this blog post, we'll explore what causes this error and provide solutions to fix it.

Understanding the Error

The Uncaught ReferenceError: moment is not defined error is a clear indication that the Moment.js library is either missing or not properly included in your project. When JavaScript code attempts to use the moment function without finding a reference to it, the browser throws this error.

Solutions to Fix the Error

There are a few different ways to fix the Uncaught ReferenceError: moment is not defined error. Let's take a look at each of them.

Solution 1: Include Moment.js library in your project

The most straightforward solution is to make sure the Moment.js library is properly included in your project. You can download the library from the official Moment.js website, or you can use a CDN to link to it.

Here's how you can include Moment.js via CDN in your HTML file:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

This script tag should be placed in the HTML file before any JavaScript code that relies on the Moment.js library. Ensure the version number matches the one you intend to use.

If you encountered the problem on node.js install moment via npm:

npm install moment

This will install the latest version of Moment.js in your project. You can then import it in your JavaScript file like this:

import moment from "moment";

Solution 2: Check the order of script tags

If you're using a CDN to link to the Moment.js library, make sure the script tag is placed before any JavaScript code that relies on the library. Otherwise, the browser will throw the Uncaught ReferenceError: moment is not defined error.

Solution 3: Troubleshoot External Factors

If you've tried the above solutions and are still getting the Uncaught ReferenceError: moment is not defined error, it's time to look at external factors. For example, if you're using a CDN to link to the Moment.js library, check if the CDN is down. You can do this by visiting the URL in your browser and seeing if it loads correctly.

If you're using a CDN, you can also try using a different one to see if that resolves the issue. You can find a list of CDNs that host Moment.js on cdnjs.com.

Some browser extensions can also cause issues with Moment.js. Try disabling any extensions you have installed and see if that fixes the problem.

Solution 4: Use a Different Library

If you're still getting the Uncaught ReferenceError: moment is not defined error, you might want to consider using a different library for date and time manipulation.

Moment.js is considered to be a legacy project in maintenance mode. The project maintainers have recommended that developers use a different library for new projects.

There are many alternatives to Moment.js, such as Luxon, Day.js, and date-fns.

SHARE