postcss-modules icon indicating copy to clipboard operation
postcss-modules copied to clipboard

Make this package browser friendly

Open barak007 opened this issue 3 years ago • 2 comments

Hello we have a use case that we want to use this plugin in the browser and bundle it via webpack. Currently the FileSystemLoader is being use as a fallback loader if no load provided via the config, and it is always imported by the package index.

The issue is: FileSystemLoader imports nodejs fs module and that's not browser friendly (needs config in order to bundle).

I have few suggestions for solutions to this issue:

  1. Add "browser" field to the package.json that will implement a "loader" that throws something like "when using this package in browser you must provide a custom loader"
  2. Create entrypoint specifically for browser usage which does not import FileSystemLoader by default
  3. Allow inject the fs module to the loaders avoiding importing it directly (split the index into a factory that will accept fs)

These are non-breaking changes that can be done here.

We are willing to make this PR.

Please advice.

barak007 avatar Apr 13 '22 10:04 barak007

same is true for saveJSON

barak007 avatar Apr 13 '22 14:04 barak007

you can make an alias for fs through webpack to some file that does nothing

GideonMax avatar Dec 19 '22 14:12 GideonMax