Closed backspaces closed 3 years ago
Some details so you can easily reproduce this:
I created a new test dir, cd'd to it and ran:
npm init -y
yarn add rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve -D
yarn add @turf/turf
Then created a rollup.config.js:
import commonjs from '@rollup/plugin-commonjs'
import { nodeResolve } from '@rollup/plugin-node-resolve'
export default {
input: './node_modules/@turf/turf/dist/es/index.js',
output: {
file: 'turf.all.js',
format: 'esm',
},
plugins: [nodeResolve(), commonjs()],
}
Finally ran:
node_modules/.bin/rollup -c
Which produced:
./node_modules/@turf/turf/dist/es/index.js → turf.all.js...
(!) Circular dependencies
node_modules/d3-voronoi/src/Diagram.js -> node_modules/d3-voronoi/src/Beach.js -> node_modules/d3-voronoi/src/Cell.js -> node_modules/d3-voronoi/src/Edge.js -> node_modules/d3-voronoi/src/Diagram.js
node_modules/d3-voronoi/src/Diagram.js -> node_modules/d3-voronoi/src/Beach.js -> node_modules/d3-voronoi/src/Cell.js -> node_modules/d3-voronoi/src/Diagram.js
node_modules/d3-voronoi/src/Diagram.js -> node_modules/d3-voronoi/src/Beach.js -> node_modules/d3-voronoi/src/Circle.js -> node_modules/d3-voronoi/src/Diagram.js
node_modules/d3-voronoi/src/Diagram.js -> node_modules/d3-voronoi/src/Beach.js -> node_modules/d3-voronoi/src/Diagram.js
(!) `this` has been rewritten to `undefined`
https://rollupjs.org/guide/en/#error-this-is-undefined
node_modules/@turf/random/dist/es/index.js
1: var __spreadArrays = (this && this.__spreadArrays) || function () {
^
2: for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
3: for (var r = Array(s), k = 0, i = 0; i < il; i++)
...and 1 other occurrence
created turf.all.js in 2.8s
If we swap to using tslib instead of the inline implementations, it should fix this issue and slightly reduce our final bundle sizes for folks. Good catch!
Please provide the following when reporting an issue:
[x ] The version of Turf you are using, and any other relevant versions.
[x ] GeoJSON data as a gist file or geojson.io (filename extension must be
.geojson
).Not applicable
I'm using rollup to create a large single Turf es6 module. The presence of "this" & code before it's imports in
produces errors in rollup. This fixes the problem:
With this fix, I still get circular dependencies reported by rollup: