230 GitHub stars and counting — piotrwitek/react-redux-typescript-jspm-starter is a TypeScript project TopGit is tracking across repositories on the platform. Futuristic, bundle-free, development environment for building Component-Driven SPA with React, Redux and TypeScript - powered by JSPM (SystemJS & Rollup with tree-shaking)
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
based on JSPM (SystemJS - ES module loader + bundling with Rollup)
Futuristic, bundle-free development environment for building Component-Driven SPA with React, Redux and TypeScript - utilizing power of Static Type-checking, ES.Next, CSS-Modules, Hot-reload, in-browser transpilation, tree-shaking - powered by JSPM (SystemJS & Rollup with tree-shaking)
Learn more about static typing with TypeScript in "React & Redux" apps here:
A comprehensive guide to static typing "React & Redux" apps using TypeScript https://github.com/piotrwitek/react-redux-typescript-guide
Alternative Webpack-2 powered Starter with react-hot-loader, optimized for performance:
No module bundling during development, instead loading source files (.ts/.tsx) directly in the browser (using plugin-typescript). Type-checking is disabled for speed and delegated to another process.
DELEGATED TYPE-CHECKING
Type-checking is delegated to a seperate process using following options:
CLI - TypeScript compiler running in CLI (instructions)
Editor/IDE - TypeScript Language Service providing Intellisense (e.g. Webstorm, VS Code, Atom, Sublime Text, alm.tools and more...)
NOTE: There are two seperate tsconfig needed - one for type-checking during development and the other for sources compilation to create production bundle:
tsconfig for development type-checking
tsconfig for building production bundle
STRICT NULL CHECKS
Enable strictNullChecks with noImplicitAny (compiler flags), to get Non-nullable Types (v2.0) and Smarter Type Inference (v2.1) (Source) which greatly increase your TypeScript experience.
HOT-RELOAD THAT SCALE
Local dev-server with hot-reload out-of-the-box (using systemjs-hot-reloader).
Scaling: - this workflow can handle very large projects with thousands of modules without slowing down, basically because it re-import and re-evaluate only those modules that has changed in the browser using SystemJS Module Loader.__
More on differences with Webpack workflow from real project use-case by @jonaskello https://github.com/Microsoft/TypeScript/issues/1564#issuecomment-252903932
CLI WORKFLOW
Most often your team is using different Editors/IDE's so you'll need to have a common way across the team to run type-checking using right version of TypeScript compiler for consistent results and avoid version mismatch issues.
Provided npm commands *(JS emit is disabled to not emit files for type-checking):
tsc -p src --watch - fast incremental type-checking in watch mode
tsc -p src - single thorough check
ASYNC/AWAIT/GENERATORS - transpilation to ES5
TypeScript natively support "async & generator functions" transformations without any other tools when targeting ES5:
Async/Await - TS v2.1 provide native downlevel transformation to ES5 (Source)
Generators - TS v2.3 provide native downlevel transformation to ES5 (Source)
TESTING WITH TYPESCRIPT
Running tests without transpilation with ts-node runtime (CLI command npm test)
Test harness using (jest)
Jest Snapshot Testing in TypeScript
AUTOMATIC BUILD SCRIPTS
Fully automatic build script will generate your "vendor bundle" by parsing and extracting JSPM dependencies from package.json. No manual configuration.
OPTIMIZED JSPM LOADING SPEED
When trying to load multiple external dependencies as seperate calls it can slow down page reload in the browsers.
Splitting external dependencies to a "vendor bundle" (from node_modules/ dependencies)can speed up page reload significantly by minimizing requests count.
Test reload speed improvement using following simple test procedure:
run npm run dev:unbundle -> open network tab in chrome dev tools -> reload the page -> check logged results
run npm run dev:bundle -> open network tab in chrome dev tools -> reload page -> compare logged results with previous
Features
PRODUCTION-WORKFLOW - cross-platform npm scripts for production bundling & deployment, github-hooks, linter, test runner etc.
TYPESAFE-API-CALLS - type safety of HTTP API calls (responses/requests) - stop checking for API docs and let your tools guide you
REACT-ROUTER - react-router-redux to store routing history in redux state (Time-Travel Debugging)
REDUX-DEV-TOOLS - Redux DevTools with chrome-extension
BEM & ITCSS - BEM with Inverted Triangle conventions to give meaning and context to CSS classes
JSPM 0.17.X - production ready set-up with best-practices from real-world projects
optimized loading speed by utilizing vendor dev-bundle (read below)
using Rollup for bundling and tree-shaking optimizations
bundles for production - seperate vendor & app bundles
importing and bundling CSS / SCSS / JSON / Image files using plugins
Roadmap
Redux integration testing
Testing with Enzyme (JSDOM)
Testing with Snapshots
Installation
Prerequisites
Node.js >=4.0.0
Optional: Global JSPM installation for CLI commands - npm i -g jspm
you can use Yarn
// Clone repo
git clone https://github.com/piotrwitek/react-redux-typescript-jspm-starter.git
// Install dependencies
npm install
// Install JSPM packages and create vendor dependencies bundle
npm run init
// Run development server with HMR
npm run dev
NOTE: Use index.html from assets for production, it have optimized loading logic for production. It is already configured in build script.
- Development Workflow
npm run dev:bundle - build optional vendor dependencies bundle to speed-up page reload during development (re-run when dependencies was changed)
npm run dev - start local dev server with hot-reload and open browser
- NO-IDE Workflow - command line type checking
npm run tsc:watch - if you don't use IDE with Intellisense, run this command for fast incremental type-checking in CLI
- Build for Production Workflow
npm run build - create app.js & vendor.js bundles in dist/ folder
npm run build:app - build only app.js bundle (run when project source code has changed)
npm run build:vendor - build only vendor.js bundle (run when project dependencies has changed)
npm run prod - start local dev server in dist/ folder running production bundle
CLI Commands
- Init
npm run init - install jspm packages and prebuilds vendor.dev.js bundle
- Development
npm run dev or yarn dev - start local dev server with hot-reload jspm-hmr
npm run dev:bundle - build optional vendor dependencies bundle (vendor.dev.js) to speed-up page reload during development (non-minified with source-maps)
npm run dev:unbundle - remove vendor.dev.js bundle package (WARNING: it will result in loading all of vendor packages as multiple requests - use it only when needed e.g. leveraging HTTP/2 multiplexing/pipelining)
- Type checking
npm run tsc - single thorough check
npm run tsc:watch - fast incremental type-checking in watch mode
- Production Bundling (dist/ folder)
npm run prod - start local dev server in dist/ folder running production bundle
npm run build - build all, app.js & vendor.prod.js bundle
npm run build:app - build only src/ - app.js (minified, no source-maps)
npm run build:vendor - build only node_modules/ dependencies - vendor.prod.js (minified, no source-maps)
npm run build:debug - build debug version of app.js (non-minified with source-maps)
- Utility & Git Hooks
npm run clean - clean dist, node_modules, jspm_packages folders
npm run lint - run ts linter
npm run test - run tests with jest runner
npm run test:update - updates jest snapshots
npm run precommit - pre commit git hook - runs linter and check types
npm run prepush - pre push git hook - runs linter and tests
- Deployment
npm run deploy:init - clone git repository in /dist folder (gh-pages branch)
npm run deploy - commit and push all changes found in /dist folder
The MIT License (MIT)
Copyright (c) 2016 Piotr Witek [email protected] (http://piotrwitek.github.io/)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
How active is development on piotrwitek/react-redux-typescript-jspm-starter?
The most recent commit recorded on piotrwitek/react-redux-typescript-jspm-starter was 8.2 years ago, based on the GitHub push timestamp. The repository has 40 forks — one of the better signals of community interest.
How does piotrwitek/react-redux-typescript-jspm-starter compare to other Developer Tools projects?
piotrwitek/react-redux-typescript-jspm-starter is tracked by TopGit in the Developer Tools category, with 230 GitHub stars and written in TypeScript. Browse the Developer Tools topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does piotrwitek/react-redux-typescript-jspm-starter have?
piotrwitek/react-redux-typescript-jspm-starter has 230 GitHub stars — refresh the page for the live number, or check github.com/piotrwitek/react-redux-typescript-jspm-starter. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is piotrwitek/react-redux-typescript-jspm-starter?
piotrwitek/react-redux-typescript-jspm-starter (piotrwitek/react-redux-typescript-jspm-starter) is a TypeScript project on GitHub. From the project's own README: Futuristic, bundle-free, development environment for building Component-Driven SPA with React, Redux and TypeScript - powered by JSPM (SystemJS & Rollup with tree-shaking)
What language is piotrwitek/react-redux-typescript-jspm-starter written in?
piotrwitek/react-redux-typescript-jspm-starter is written primarily in TypeScript. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is piotrwitek/react-redux-typescript-jspm-starter associated with?
GitHub's repository topics for piotrwitek/react-redux-typescript-jspm-starter: "boilerplate", "hot-reload", "jspm", "react", "redux", "rollup", "starter", "systemjs", "typescript". TopGit's editorial category is Developer Tools.
Why is piotrwitek/react-redux-typescript-jspm-starter categorized under Developer Tools?
TopGit places piotrwitek/react-redux-typescript-jspm-starter in the Developer Tools category based on its GitHub topics and description (tagged: "boilerplate", "hot-reload", "jspm"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Curious whether react-redux-typescript-jspm-starter is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about react-redux-typescript-jspm-starter.