Mismatched anonymous define() module Mismatched anonymous define() module javascript javascript

Mismatched anonymous define() module


Like AlienWebguy said, per the docs, require.js can blow up if

  • You have an anonymous define ("modules that call define() with no string ID") in its own script tag (I assume actually they mean anywhere in global scope)
  • You have modules that have conflicting names
  • You use loader plugins or anonymous modules but don't use require.js's optimizer to bundle them

I had this problem while including bundles built with browserify alongside require.js modules. The solution was to either:

A. load the non-require.js standalone bundles in script tags before require.js is loaded, or

B. load them using require.js (instead of a script tag)


In getting started with require.js I ran into the issue and as a beginner the docs may as well been written in greek.

The issue I ran into was that most of the beginner examples use "anonymous defines" when you should be using a "string id".

anonymous defines

define(function() {        return { helloWorld: function() { console.log('hello world!') } }; })      define(function() {        return { helloWorld2: function() { console.log('hello world again!') } }; })

define with string id

define('moduleOne',function() {    return { helloWorld: function() { console.log('hello world!') } };}) define('moduleTwo', function() {      return { helloWorld2: function() { console.log('hello world again!') } };})

When you use define with a string id then you will avoid this error when you try to use the modules like so:

require([ "moduleOne", "moduleTwo" ], function(moduleOne, moduleTwo) {    moduleOne.helloWorld();    moduleTwo.helloWorld2();});


I had this error because I included the requirejs file along with other librairies included directly in a script tag. Those librairies (like lodash) used a define function that was conflicting with require's define. The requirejs file was loading asynchronously so I suspect that the require's define was defined after the other libraries define, hence the conflict.

To get rid of the error, include all your other js files by using requirejs.