postcss / postcss-load-config

Autoload Config for PostCSS
MIT License
642 stars 72 forks source link

Load config from NPM package #183

Open dalgard opened 5 years ago

dalgard commented 5 years ago

Sharing a preset across teams or packages is a great way to reduce complexity. It surprises me that PostCSS forces me to use a postcss.config.js file rather than giving me the option to point to a shared package.

Passing a package name instead of a simple path is easy to integrate with existing options. An intuitive command line syntax might look like this:

postcss --config myPackage
postcss --config myPackage/path/to/config.js
postcss --config @myOrg/myPackage/...

Although, the preferred option would clearly be referencing it in package.json:

  "postcss": "myPackage"
  "postcss": "@myOrg/myPackage/path/to/config.js"

  "postcss": {
    "config": "@myOrg/myPackage/path/to/config.js"
  }

Prettier implements sharing configs quite beautifully with its package.json option.

To minimize friction for the user, the path string should optimally be resolved in the same way module paths are resolved in Parcel or Webpack.

majo44 commented 3 years ago

Hello, I also looking for such option. For the monorepo, or multiple packages will be very useful to have possibility for share the config, just by referencing the package which that config delivers just by the literal. As alternative approach to config option we can consider extends config property like the:

ect.

Looks like the extends approach is become some typical for the problem. extends approach is also a bit more flexible as it also supports the real configuration extending. On other hands will require some rethink how to resolve plugins.