close

tsup

This section introduces how to migrate a project using tsup to Rslib.

Installing dependencies

First, you need to replace the npm dependencies of tsup with Rslib's dependencies.

  • Remove tsup:
npm
yarn
pnpm
bun
deno
npm remove tsup
  • Install Rslib:
npm
yarn
pnpm
bun
deno
npm add @rslib/core -D

Updating npm scripts

Next, you need to update the npm scripts in your package.json to use Rslib's CLI commands.

package.json
{
  "scripts": {
-   "build": "tsup",
-   "build:watch": "tsup --watch",
+   "build": "rslib build",
+   "build:watch": "rslib build --watch"
  }
}

Create configuration file

Create a Rslib configuration file rslib.config.ts in the same directory as package.json, and add the following content:

rslib.config.ts
import { defineConfig } from '@rslib/core';

export default defineConfig({});

Configuration migration

Here is the corresponding Rslib configuration for tsup configuration:

Example

Here is an example of migrating a typical tsup configuration to Rslib:

tsup.config.ts
import { defineConfig } from 'tsup';

export default defineConfig({
  entry: ['./src/index.ts'],
  format: ['esm', 'cjs'],
  dts: true,
  clean: true,
});

The corresponding Rslib configuration is as follows:

rslib.config.ts
import { defineConfig } from '@rslib/core';

export default defineConfig({
  lib: [
    {
      format: 'esm',
      dts: true,
    },
    {
      format: 'cjs',
      dts: true,
    },
  ],
  source: {
    entry: {
      index: './src/index.ts',
    },
  },
  output: {
    cleanDistPath: true,
  },
});

Validating results

After completing the above steps, you have finished the basic migration from tsup to Rslib. You can now run the npm run build command to build the outputs and verify that the directory structure and extensions of the outputs are consistent with those before the migration.

If you encounter issues during the build process, please debug according to the error logs. You can also enable debug mode to view the final configurations generated by Rslib, or check the tsup.config.ts configuration to see if any required configurations have not been migrated to Rslib.

Contents supplement

The current document only covers part of the migration process. If you find suitable content to add, feel free to contribute to the documentation via a pull request 🤝.

The documentation for Rslib can be found in the rslib/website directory.