@neodx/libmake
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

🛠️ libmake - Zero configuration libraries builder

In early development

One command, one dependency and zero configuration to build your libraries.

Built upon Rollup and SWC.

Features

  • [ ] Zero configuration with auto detection
    • [x] SWC additional configuration (.swcrc)
    • [ ] Babel (.babelrc or other formats) - we should replace (or add one more step?) swc with babel when we found .babelrc
    • [x] CSS
      • [x] PostCSS (by default if we found postcss.config.js or any other pre-processor)
      • [x] SCSS, LESS, Stylus
      • [x] Modules (my-file.module.css) and global (any other) files
  • [x] Beautiful TypeScript support
    • [x] Builds clean TypeScript definitions
    • [x] Support configuration: baseUrl, paths, externalHelpers, target, sourceMap, experimentalDecorators
  • [x] Multiple entries and outputs
    • [x] Different outputs: CJS, ESM (.mjs), UMD
    • [x] Single or multiple inputs: file, array, globs and all together
    • [ ] Out-of-box split output on multiple entries
    • [ ] wip package.json update suggestion: exports and typesVersions

Installation and fast setup

Install libmake with any package manager: yarn add -D @neodx/libmake / npm i -D @neodx/libmake.

Describe your package.json:

{
  main: 'dist/index.cjs',
  types: 'dist/index.d.ts',
  source: 'src/index.ts',
  module: 'dist/index.mjs',
  exports: {
    '.': {
      default: './dist/index.mjs',
      require: './dist/index.cjs',
      import: './dist/index.mjs'
    }
  },
  files: ['dist', 'README.md'],
  scripts: {
    dev: 'libmake -w',
    build: 'libmake'
  }
}

And try to run our CLI: yarn libmake

Example of package.json minimal setup

{
  main: 'dist/index.cjs',
  module: 'dist/index.mjs',
  scripts: {
    dev: 'libmake -w',
    build: 'libmake'
  }
}

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:

Temporal milestones

Readme

Keywords

none

Package Sidebar

Install

npm i @neodx/libmake

Weekly Downloads

1

Version

0.0.3

License

none

Unpacked Size

28.2 kB

Total Files

5

Last publish

Collaborators

  • secundant