d3/d3-interpolate

Circular dependencies between array.js <-> value.js and object.js <-> value.js

xdc0 opened this issue · 2 comments

xdc0 commented

Detected this circular dependency issue in my team's CI, we use rc-slider which has d3-interpolate as dependency.

The circular dependency was reported by CI as follows:

Circular dependency: node_modules/d3-interpolate/src/value.js -> node_modules/d3-interpolate/src/array.js -> node_modules/d3-interpolate/src/value.js
Circular dependency: node_modules/d3-interpolate/src/value.js -> node_modules/d3-interpolate/src/object.js -> node_modules/d3-interpolate/src/value.js

Circular dependencies are allowed in ES modules. This is a warning by Rollup, not a bug; I don’t have any immediate plans to remove the circular dependencies.

For folks using rollup:

// https://github.com/d3/d3-interpolate/issues/58
const D3_WARNING = /Circular dependency.*d3-interpolate/

(and then later)

  onwarn: function ( message ) {
    if ( D3_WARNING.test(message) ) {
      return
    }
  },