Skip to content

CJS-style AMD has problems with circular dependencies #1483

@matthewp

Description

@matthewp

This example demonstrates:

define('one', [
    'require',
    'exports',
    'module',
    /*'two'*/
], function (require, exports, module) {
  module.exports = One;

  One.Two = require("./two");

  function One() {

  }
});

define('two', [
    'require',
    'exports',
    'module',
    /*'one'*/
], function (require, exports, module) {
  module.exports = Two;

  var One = require("./one");

  function Two() {

  }

  Two.prototype = Object.create(One.prototype);
});

define(['one']);

This code depends on the ability to define module.exports before a later function is called. This works fine in CommonJS but not in AMD-style cjs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions