🛠️ autobuild - Zero configuration libraries builder
In early development
One command, one dependency and zero configuration to build your libraries.
Features
- <input disabled="" type="checkbox"> Zero configuration with auto detection
- <input checked="" disabled="" type="checkbox"> SWC additional configuration (
.swcrc
) - <input disabled="" type="checkbox"> Babel (
.babelrc
or other formats) - we should replace (or add one more step?) swc with babel when we found.babelrc
- <input checked="" disabled="" type="checkbox"> CSS
- <input checked="" disabled="" type="checkbox"> PostCSS (by default if we found
postcss.config.js
or any other pre-processor) - <input checked="" disabled="" type="checkbox"> SCSS, LESS, Stylus
- <input checked="" disabled="" type="checkbox"> Modules (
my-file.module.css
) and global (any other) files
- <input checked="" disabled="" type="checkbox"> PostCSS (by default if we found
- <input checked="" disabled="" type="checkbox"> SWC additional configuration (
- <input checked="" disabled="" type="checkbox"> Beautiful TypeScript support
- <input checked="" disabled="" type="checkbox"> Builds clean TypeScript definitions
- <input checked="" disabled="" type="checkbox"> Support configuration:
baseUrl, paths, externalHelpers, target, sourceMap, experimentalDecorators
- <input checked="" disabled="" type="checkbox"> Multiple entries and outputs
- <input checked="" disabled="" type="checkbox"> Different outputs:
CJS
,ESM
(.mjs),UMD
- <input checked="" disabled="" type="checkbox"> Single or multiple inputs: file, array, globs and all together
- <input disabled="" type="checkbox"> Out-of-box split output on multiple entries
- <input disabled="" type="checkbox"> wip
package.json
update suggestion:exports
andtypesVersions
- <input checked="" disabled="" type="checkbox"> Different outputs:
Installation and fast setup
Install autobuild with any package manager: yarn add -D @neodx/autobuild
/ npm i -D @neodx/autobuild
.
Describe your package.json:
{
files: ['dist', 'README.md'],
scripts: {
build: 'autobuild src/index.ts'
}
}
And try to run our CLI: yarn autobuild
Known issues and limitations
Slow TypeScript definitions and CSS build time
We use rollup-plugin-dts
and rollup-plugin-postcss
,
both of them significant slow down the build time.
Probably, we will change our setup with other solutions or even with self-made plugins in future.
Limited CSS support - single file only, no imports in generated code
Unfortunately, currently we can't provide great CSS output :(
Supported features:
- CSS modules (
my-file.module.css
), global styles - Scss, less, stylus
- PostCSS configuration
- Minification
Unsupported:
- Multiple entries - see our "advanced-mixed" example
- Import statements in built code, which is required for DX with multiple entries
Temporal milestones
- <input checked="" disabled="" type="checkbox">
[rejected]
Replace postcss plugin with https://www.npmjs.com/package/rollup-plugin-styles - <input disabled="" type="checkbox"> Add support for CSS splitting
- <input disabled="" type="checkbox"> Research why swc remove
.scss
extension - <input disabled="" type="checkbox"> Fork
rollup-plugin-styles