ts-jest VS plugins

Compare ts-jest vs plugins and see what are their differences.

ts-jest

A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript. (by kulshekhar)

plugins

🍣 The one-stop shop for official Rollup plugins (by rollup)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
ts-jest plugins
18 16
6,839 3,506
- 1.3%
8.0 8.5
10 days ago 12 days ago
TypeScript JavaScript
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.

ts-jest

Posts with mentions or reviews of ts-jest. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-13.
  • In-Depth guide for TypeScript Library
    4 projects | dev.to | 13 Nov 2023
    use ts-jest and set up Paths Re-Map
  • Is using Jest for anything other than React a bad idea?
    3 projects | /r/node | 12 Sep 2022
    ts-jest has had some strange performance issues and workarounds in the past, though I haven’t used it very recently so it might have fixed those by now.
  • Test-Driven Infrastructure Development with Pulumi and Jest
    8 projects | dev.to | 14 Jun 2022
    Since we're working with TypeScript, we can use ts-jest, which conveniently brings Jest along for the ride:
  • Improve your Testing with Custom Matchers in Jest
    2 projects | dev.to | 18 May 2022
    I want to save you from manually copying the snippets one by one, so here is a Gist with the complete test file. This can be easily executed with Jest (or ts-jest for TypeScript).
  • Testing Mongoose with Ts-Jest
    3 projects | dev.to | 20 Apr 2022
  • A complete guide to full-stack live reload
    9 projects | dev.to | 16 Mar 2022
    See the Jest configuration docs to learn more about Jest configuration. ts-jest also has good documentation.
  • Setup Jest to React Typescript Vite project, also SWC (part 1)
    13 projects | dev.to | 14 Mar 2022
    Using @swc/jest to compile code to CommonJS is much faster than babel-jest, ts-jest which have long cold starts when executing tests in a large project.
  • Component Testing in Svelte
    6 projects | dev.to | 19 Feb 2022
    ts-jest: A transformer for handling TypeScript files.
  • The Ultimate Guide to TypeScript Monorepos
    17 projects | dev.to | 26 Nov 2021
    Thankfully using TypeScript and TypeScript project references makes the intricate problem of using Jest easier since we can make use of the excellent ts-jest Jest transformer. All we need to do it point ts-jest to the respective tsconfig.json file for each package (see example jest.config.js). Since we have configured TypeScript to be composite and incremental, we do not need to recompile TypeScript for dependencies of a package we want to test, which significantly reduces the runtime for unit tests. ts-jest will also ensure that any error message will reference the line numbers in the source TypeScript files.
  • Testing Svelte components with Jest and Vite
    8 projects | dev.to | 18 Nov 2021
    We need to configure Jest to transform our files. We must explicitly set our test environment to jsdom, which we are using through Jest. Since v27 Jest's default test environment is node. I will put the configuration in a specific Jest configuration file called jest.config.json in the project root folder. If you create a configuration file called jest.config.js, Vite will complain as it expects only ESM JavaScript by default. Vite will recommend that you rename it to a ".cjs" file if you want to do it that way. You can look at the different ways to configure Jest if you are unsure about the file conventions. If you're using TypeScript, you need to configure svelte-preprocess and ts-jest also, see the svelte-jester docs for how to do that.

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.
  • 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, },
  • 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, }, };
  • Rollup 2 in a simple html+js usecase
    2 projects | dev.to | 3 Jun 2021
    Even for JSON files, rollup needs an aditional library - a json plugin. The installation & configuration will be covered below.
  • I'm a web developer trying to learn rust. What is the best way to implement rust with web assembly in rollup?
    4 projects | /r/rust | 24 Apr 2021
    If I do the same steps with vite everything seems to work fine. What am I doing wrong? I have tried using the wasm package from rollup @rollup/plugin-wasm but have not been successful.
  • Setting Up a JavaScript Build Process using Rollup
    8 projects | dev.to | 17 Feb 2021
    And then one Rollup plugin to integrate Babel:
  • Rolling (up) a multi module system (esm, cjs...) compatible npm library with TypeScript and Babel
    4 projects | dev.to | 7 Feb 2021
    @rollup/plugin-babel: Triggers the transpile step through Babel (basically what we have done by means of the babel-cli for the unbundled versions). As we are using babel only for the bundled artifacts babelHelpers are set to bundled, so in case any helpers are needed these are added to the bundle file (you can read more about the property in the documentation). In include and extensions the files and their extensions (ts/js for the example library) to process are defined, whereasexcludes indicates folders/patterns which should be skipped (just the node_modules folder for the example library).
  • How to Setup a TypeScript project using Rollup.js
    3 projects | dev.to | 19 Jan 2021
    In case you're planning to build a SPA project(Single Page Application), you can use the createSpaConfig in Rollup configuration. Also, you can install the @rollup/plugin-typescript for seamless integration between Rollup and TypeScript.

What are some alternatives?

When comparing ts-jest and plugins you can also consider the following projects:

jest - Super-fast alternative for babel-jest or ts-jest without type checking. Please use main repository for issues

esbuild - An extremely fast bundler for the web

tsup - The simplest and fastest way to bundle your TypeScript libraries.

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

tsc-esm-fix - Make Typescript projects compatible with esm/mjs requirements

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

svgr - Transform SVGs into React components 🦁 [Moved to: https://github.com/gregberge/svgr]

SvelteKit - web development, streamlined

svelte-preprocess - A ✨ magical ✨ Svelte preprocessor with sensible defaults and support for: PostCSS, SCSS, Less, Stylus, Coffeescript, TypeScript, Pug and much more.

svelte-vite-jest-template - Svelte template based on Vite's Svelte template, but includes unit testing setup (Jest and Svelte Testing Library).

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