Configuration
Parcel configuration can be shared between projects by publishing a .parcelrc
file in a package on npm. This also allows multiple plugins to be distributed together.
Shared configuration
#This example shows how a company might distribute a shared Parcel configuration to be used between projects. It extends @parcel/config-default
and adds several additional plugins.
{
"name": "@company/parcel-config",
"main": "index.json",
"version": "1.0.0",
"engines": {
"parcel": "2.x"
}
}
{
"extends": "@parcel/config-default",
"transformers": {
"*.svg": ["...", "@parcel/transformer-svg-react"]
},
"namers": ["@company/parcel-namer", "..."],
"compressors": {
"*.{js,html,css}": [
"...",
"@parcel/compressor-gzip",
"@parcel/compressor-brotli"
]
}
}
Multi-plugin packages
#In addition to sharing configuration between projects, Parcel config packages are also useful to distribute multiple plugins that are required to work together. For example, a transformer and packager combination may be needed for a new file format.
Note: In this case, it's best to not extend the default Parcel config and allow users of your config package to choose which default to extend from.
{
"name": "parcel-config-xml",
"main": "index.json",
"version": "1.0.0",
"engines": {
"parcel": "2.x"
}
}
{
"transformers": {
"*.xml": ["parcel-transformer-xml"]
},
"packagers": {
"*.xml": "parcel-packager-xml"
}
}
Once published, users can now consume parcel-config-xml
in their projects by extending it in addition to the default config of their choice.
{
"extends": ["@parcel/config-default", "parcel-config-xml"]
}