plugins VS tsup

Compare plugins vs tsup and see what are their differences.

plugins

🍣 The one-stop shop for official Rollup plugins (by rollup)

tsup

The simplest and fastest way to bundle your TypeScript libraries. (by egoist)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
plugins tsup
16 21
3,511 8,047
1.4% -
8.3 7.2
3 days ago 15 days ago
JavaScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

plugins

Posts with mentions or reviews of plugins. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-05.
  • Do vite builds not automatically support typescript?
    1 project | /r/typescript | 1 Apr 2023
    But when I start a production bundling + build process, which I guess is actually made with rollup, I see Unexpected token (Note that you need plugins to import files that are not JavaScript). Lookin around, it seems like this is a rollup error, not a vite error.
  • Migrating app from parcel to rollup
    1 project | /r/reactjs | 21 Oct 2022
    rollup v3.2.3 bundles ./src/index.js → dist/bundle.js... babelHelpers: 'bundled' option was used by default. It is recommended to configure this option explicitly, read more here: https://github.com/rollup/plugins/tree/master/packages/babel#babelhelpers [!] (plugin commonjs--resolver) SyntaxError: Unexpected token (12:2) in /Users/krishna404/codeProjects/All_SmartAgent/desktopSmartAgent/src/index.js src/index.js (12:2) 10: import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; 11: ReactDOM.render( 12: ^ 13:
  • Rollup Library Starter
    9 projects | dev.to | 5 Oct 2022
    Next, we need to tell Rollup which of the modules used in our code are external to our library. Together with @rollup/plugin-node-resolve, this ensures that Rollup doesn't bundle those dependencies into our final bundle. The function makeExternalPredicate() generates the list of package names specified in dependencies and peerDependencies in package.json. All credit for this and a big thank you goes out to Mateusz Burzyński for providing it in this issue:
  • I'd like to use Svelte with PHP with SSR and an island architecture. How would I go about doing this?
    2 projects | /r/sveltejs | 3 Sep 2022
    // If you have external dependencies installed from // npm, you'll most likely need these plugins. In // some cases you'll need additional configuration - // consult the documentation for details: // https://github.com/rollup/plugins/tree/master/packages/commonjs resolve({ browser: true, dedupe: ['svelte'], }), commonjs(), // In dev mode, call `npm run start` once // the bundle has been generated !production && serve(), // Watch the `public` directory and refresh the // browser on changes when not in production !production && livereload('public'), // If we're building for production (npm run build // instead of npm run dev), minify production && terser(), ], watch: { clearScreen: false, },
  • Is there a way I can conditionally choose which module I import at compile time?
    1 project | /r/sveltejs | 25 Jul 2022
    Then in this case, if you don't want to use Vite's dynamic imports, you can conditionally use this plugin in your vite config under rollupOptions. https://github.com/rollup/plugins/tree/master/packages/inject. This way you won't even need to use env vars.
  • Svelte And Tailwind
    1 project | /r/tailwindcss | 27 May 2022
    compilerOptions: { // enable run-time checks when not in production dev: !production } }), // we'll extract any component CSS out into // a separate file - better for performance css({ output: 'bundle.css' }), // If you have external dependencies installed from // npm, you'll most likely need these plugins. In // some cases you'll need additional configuration - // consult the documentation for details: // https://github.com/rollup/plugins/tree/master/packages/commonjs resolve({ browser: true, dedupe: ['svelte'] }), commonjs(), // In dev mode, call \npm run start` once // the bundle has been generated !production && serve(), // Watch the `public` directory and refresh the // browser on changes when not in production !production && livereload('public'), // If we're building for production (npm run build // instead of npm run dev), minify production && terser() ], watch: { clearScreen: false } };`
  • Rollup/commonjs getting unexpected token for hex numeric literals in package
    1 project | /r/sveltejs | 15 Nov 2021
    You should submit an issue there: https://github.com/rollup/plugins/tree/master/packages/commonjs
  • How to use SVGs in React
    6 projects | dev.to | 5 Nov 2021
    In Webpack 5, this is (surprisingly) simple to setup. Parcel 2 handles this out of the box with a special import prefix. Rollup has an official plugin.
  • What does it take to support Node.js ESM?
    9 projects | dev.to | 12 Aug 2021
    The only workaround to have an isomorphic __dirname or __filename to be used for both "cjs" and "esm" without using build-time tools like @rollup/plugin-replace or esbuild "define" would be using a library like filedirname that does a trick inspecting error stacks, it's clearly not the cleanest solution.
  • How to Build a To-do app with Svelte, Strapi & Tailwind CSS
    11 projects | dev.to | 22 Jul 2021
    import svelte from 'rollup-plugin-svelte'; import commonjs from '@rollup/plugin-commonjs'; import resolve from '@rollup/plugin-node-resolve'; import livereload from 'rollup-plugin-livereload'; import { terser } from 'rollup-plugin-terser'; import css from 'rollup-plugin-css-only'; import sveltePreprocess from 'svelte-preprocess'; const production = !process.env.ROLLUP_WATCH; function serve() { let server; function toExit() { if (server) server.kill(0); } return { writeBundle() { if (server) return; server = require('child_process').spawn( 'npm', ['run', 'start', '--', '--dev'], { stdio: ['ignore', 'inherit', 'inherit'], shell: true, } ); process.on('SIGTERM', toExit); process.on('exit', toExit); }, }; } export default { input: 'src/main.js', output: { sourcemap: true, format: 'iife', name: 'app', file: 'public/build/bundle.js', }, plugins: [ svelte({ preprocess: sveltePreprocess({ sourceMap: !production, postcss: { plugins: [require('tailwindcss'), require('autoprefixer')], }, }), compilerOptions: { // enable run-time checks when not in production dev: !production, }, }), // we'll extract any component CSS out into // a separate file - better for performance css({ output: 'bundle.css' }), // If you have external dependencies installed from // npm, you'll most likely need these plugins. In // some cases you'll need additional configuration - // consult the documentation for details: // https://github.com/rollup/plugins/tree/master/packages/commonjs resolve({ browser: true, dedupe: ['svelte'], }), commonjs(), // In dev mode, call `npm run start` once // the bundle has been generated !production && serve(), // Watch the `public` directory and refresh the // browser on changes when not in production !production && livereload('public'), // If we're building for production (npm run build // instead of npm run dev), minify production && terser(), ], watch: { clearScreen: false, }, };

tsup

Posts with mentions or reviews of tsup. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-30.
  • Server-side Rendering (SSR) From Scratch with React
    5 projects | dev.to | 30 Aug 2023
    Now, we can run all this server reaching the port 4000. If you want to test, build it with tsup or any other way that you want, like ts-node.
  • Creating a package/library using nextjs and typescript
    1 project | /r/nextjs | 12 Jul 2023
    If you're building hooks, providers & components you can go with only React + TypeScript, and use something ESBuild or tsup to build it.
  • Is there an automated way to create a file with the Node interpreter specified?
    2 projects | /r/typescript | 21 Jun 2023
    I am using `tsup` to transpile my application - https://github.com/egoist/tsup
  • Create an npm package template with TypeScript and tsup
    2 projects | dev.to | 10 Jun 2023
  • Ease your module bundling woes with tsup
    1 project | /r/Frontend | 6 Jun 2023
    I spent way to much time over the last couple days trying to line up vite/rollup to bundle my component library with types, type maps and the correct formats. Until I ran across this blog post which introduced me to https://github.com/egoist/tsup and it all just worked in a single readable command. I figured I'd share with you beautiful people so you could get your code bundled faster and carry on with the fun part of programming.
  • Building a modern gRPC-powered microservice using Node.js, Typescript, and Connect
    15 projects | dev.to | 20 Apr 2023
    As we iterate on the definition, we are going to want a better developer experience for rebuilding the package on changes. Typically, for a “library” or “utility” style package, I’d reach for either unbuild’s stub concept or use esbuild/tsup/rollup to implement a more traditional watch/rebuild, but in this case, I’m watching a proto file that lives outsides of the source, which breaks assumptions of those tools.
  • ESM vs Dual Package?
    1 project | /r/node | 25 Mar 2023
    My most recent project uses tsup to package a CJS and a ESM version separately, and I just publish both. It's too early to go full ESM, but I also don't want to stay on CJS, granted that we've been slowly moving away from it. To me as a dev it makes no difference, but if you want to use one or the other as a library consumer, you have a choice in my package
  • TypeScript tooling and ecosystem
    4 projects | /r/typescript | 4 Mar 2023
    If you want to stay in that ecosystem, try tsup. But you should still try to wire up a canonical tsc-based project first to understand the fundamentals.
  • Best builder for typescript library ?
    1 project | /r/typescript | 28 Oct 2022
    Have a look at tsup (https://tsup.egoist.dev) and microbundle (https://www.npmjs.com/package/microbundle)...
  • Creating Modern npm Packages
    3 projects | /r/javascript | 13 Sep 2022
    I actually recommend using tsup to build instead of tsc. It can bundle if you want, makes it easier to output multiple formats if you want, etc. It's also dead simple and lightning fast (like, MUCH faster than tasc). It's zero config so the build script is as simple as this.

What are some alternatives?

When comparing plugins and tsup you can also consider the following projects:

awesome-vite - ⚡️ A curated list of awesome things related to Vite.js

Rollup - Next-generation ES module bundler

rollup-plugin-typescript2 - Rollup plugin for typescript with compiler errors.

esbuild - An extremely fast bundler for the web

autoprefixer - Parse CSS and add vendor prefixes to rules by Can I Use

vite - Next generation frontend tooling. It's fast!

ts-jest - A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript.

swc - Rust-based platform for the Web

bob-esbuild - Building and Running TypeScript projects efficiently with rollup + esbuild

webpack - A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.

rollup-plugin-postcss - Seamless integration between Rollup and PostCSS.

tsdx - Zero-config CLI for TypeScript package development