observablehq / stdlib

The Observable standard library.
https://observablehq.com/@observablehq/standard-library
ISC License
957 stars 83 forks source link

Warnings when compiling with webpack #335

Open tophtucker opened 1 year ago

tophtucker commented 1 year ago

When building a project that depends on stdlib using Webpack (e.g. a create-react-app where you've installed the runtime and a notebook), you get 53 warnings in the terminal:

WARNING in ./node_modules/@observablehq/stdlib/src/ lazy ^.*.*$ strict namespace object @observablehq/stdlib/src/arrow.js
Module not found: Error: Package path ./src/arrow.js is not exported from package /Users/tophtucker/Development/obs-test/node_modules/@observablehq/stdlib (see exports field in /Users/tophtucker/Development/obs-test/node_modules/@observablehq/stdlib/package.json)

WARNING in ./node_modules/@observablehq/stdlib/src/ lazy ^.*.*$ strict namespace object @observablehq/stdlib/src/dependencies.js
Module not found: Error: Package path ./src/dependencies.js is not exported from package /Users/tophtucker/Development/obs-test/node_modules/@observablehq/stdlib (see exports field in /Users/tophtucker/Development/obs-test/node_modules/@observablehq/stdlib/package.json)

WARNING in ./node_modules/@observablehq/stdlib/src/ lazy ^.*.*$ strict namespace object @observablehq/stdlib/src/dependency.js
Module not found: Error: Package path ./src/dependency.js is not exported from package /Users/tophtucker/Development/obs-test/node_modules/@observablehq/stdlib (see exports field in /Users/tophtucker/Development/obs-test/node_modules/@observablehq/stdlib/package.json)

…and so on for fifty other paths. I don't know quite what it's saying… is it that we export more than we list in package.json? Does it matter? Cf. https://github.com/webpack/webpack/issues/9509, https://webpack.js.org/guides/package-exports/.

It makes the terminal pretty noisy; a customer was concerned the notebook wasn't working properly because of all the (what looked like) errors. Maybe there's a way to fix that. But if this is just a webpack idiosyncrasy, then we can close; we don't have to be beholden to what they choose to warn about.