All Projects → microsoft → rnx-kit

microsoft / rnx-kit

Licence: MIT License
Tools which help developers build, deliver, and maintain React Native apps and libraries.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
kotlin
9241 projects
swift
15916 projects
objective c
16641 projects - #2 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to rnx-kit

mod-uk-design-system
Build web applications that meet the Defence Digital service standards
Stars: ✭ 78 (-84.43%)
Mutual labels:  monorepo
terra-framework
Terra framework houses composed and higher order react components to help developers quickly build out new applications.
Stars: ✭ 60 (-88.02%)
Mutual labels:  monorepo
ftgogo
FTGOGO - event-driven architecture demonstration application using edat
Stars: ✭ 82 (-83.63%)
Mutual labels:  monorepo
nrwl-nx-action
A GitHub Action to wrap Nrwl Nx commands in your workflows.
Stars: ✭ 163 (-67.47%)
Mutual labels:  monorepo
yarn-workspaces-simple-monorepo
Yarn Workspaces basic monorepo management without Lerna for coding examples
Stars: ✭ 31 (-93.81%)
Mutual labels:  monorepo
relay-starter-kit
💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, Relay, Material UI.
Stars: ✭ 3,513 (+601.2%)
Mutual labels:  monorepo
yarn-plugin-workspace-since
모노레포를 위한 yarn berry plugin
Stars: ✭ 120 (-76.05%)
Mutual labels:  monorepo
ng-mono-repo-starter
Angular Mono Repo Starter
Stars: ✭ 79 (-84.23%)
Mutual labels:  monorepo
monoreaper
🌱 Create a monorepo by merging multiple github repositories
Stars: ✭ 21 (-95.81%)
Mutual labels:  monorepo
alfa
♿ Suite of open and standards-based tools for performing reliable accessibility conformance testing at scale
Stars: ✭ 75 (-85.03%)
Mutual labels:  monorepo
slickgrid-universal
Slickgrid-Universal is a monorepo which includes all Editors, Filters, Extensions, Services and is Framework Agnostic to take full advantage of SlickGrid core lib.
Stars: ✭ 29 (-94.21%)
Mutual labels:  monorepo
renestql
React, NestJS & GraphQL monorepo boilerplate managed with nx
Stars: ✭ 25 (-95.01%)
Mutual labels:  monorepo
vscode-monorepo-workspace
📦✨Manage monorepos with multi-root workspaces. Supports Lerna, Yarn, Pnpm, Rushjs and recursive package directories.
Stars: ✭ 93 (-81.44%)
Mutual labels:  monorepo
neptune-web
Wise Web Design System
Stars: ✭ 55 (-89.02%)
Mutual labels:  monorepo
josh
Just One Single History
Stars: ✭ 937 (+87.03%)
Mutual labels:  monorepo
react-ecommerce
E-commerce monorepo application using NextJs, React, React-native, Design-System and Graphql with Typescript
Stars: ✭ 136 (-72.85%)
Mutual labels:  monorepo
clojure-clojurescript-buck
Set of macroses for Buck build system that allows building Clojure and ClojureScript
Stars: ✭ 20 (-96.01%)
Mutual labels:  monorepo
ml monorepo
super-monorepo for machine learning and algorithmic trading
Stars: ✭ 43 (-91.42%)
Mutual labels:  monorepo
mock-spy-module-import
JavaScript import/require module testing do's and don'ts with Jest
Stars: ✭ 40 (-92.02%)
Mutual labels:  monorepo
lerna-terminal
Powerful cli ui for monorepos
Stars: ✭ 25 (-95.01%)
Mutual labels:  monorepo

React Native Developer Tools

Open in Visual Studio Code Build

Tools which help developers build, deliver, and maintain React Native apps and libraries.

The Basics

React Native engineering is complicated, and the ecosystem changes quickly. The tools here aim to improve the developer experience throughout the lifecycle of React Native apps and libraries.

An rnx is a React Native user experience. It's any code you've written using React Native. A kit is the package you use to deliver this code. For most common scenarios, such as a greenfield React Native app or a React Native library, you can say that your project's folder is a kit, since you are writing the code and releasing it.

A kit has configuration which informs how its dependencies are managed, and how it is bundled, published, delivered, and hosted. Configuration comes from rnx-kit.config.js, an rnx-kit section of package.json, or any of the other standard ways of supplying configuration.

Working with Kits

We have a command-line interface which is the front-end for common kit tasks. It uses the kit configuration to control how it operates, as well as command-line overrides. The CLI is useful as a development tool and in automated CI loops.

Dependency Management

React Native is a moving target, as is the ecosystem of dependencies designed to work with it. Finding dependencies that are actively maintained and compatible can be challenging. On top of that, once you know what dependencies to use, keeping them aligned across your repo(s) is a significant burden.

The dependency manager aims to bring alignment to all React Native developers who are working in any-size repositories, from small self-contained repositories to big, enterprise monorepos.

You can manage dependencies using the command-line interface:

yarn react-native rnx-dep-check [options] [/path/to/package.json]

Bundling

Shipping your kit starts with bundling it into a single JavaScript file. Bundling is done using Metro, the official React Native bundling system.

Consistently configuring Metro to produce a type-safe, minimal bundle, across all of your kit packages, is difficult. @rnx-kit has a number of plugins, presets, services to make this easier, all wrapped up in the command-line interface:

yarn react-native rnx-bundle

The bundling process is controlled by kit configuration and optional command-line overrides. This eliminates the need for boiler-plate Metro and Babel configuration files/code.

Licensing and Attribution

Releasing your kit to customers may require distribution of a 3rd-party notice. This notice might include licenses and attribution for external dependencies your kit uses. example.

You can use the command-line interface to assist you in building this 3rd-party notice:

yarn react-native rnx-write-third-party-notices

NOTE: A 3rd-party notice is a legal document. You are solely responsble for its content, even if you use @rnx-kit to assist you in generating it. You should consult with an attorney to ensure your notice meets all legal requirements.

Using Individual @rnx-kit Packages

If you only need a specific plugin, preset, tool or service, and don't want to use kit configuration of the CLI, you can use individual @rnx-kit packages. Most packages are designed to be used on their own, having a documented API, a suite of tests, and a log of changes. Packages are updated and released individually, as features are added and fixes are made.

Name Description
@rnx-kit/babel-plugin-import-path-remapper Babel plugin for remapping 'lib/' imports to 'src/'
@rnx-kit/babel-preset-metro-react-native Babel preset for React Native applications
@rnx-kit/bundle-diff Simple tool for diffing the content of two bundles
@rnx-kit/cli Command-line interface for working with kit packages in your repo
@rnx-kit/config Define and query information about a kit package
@rnx-kit/console Simple console logger
@rnx-kit/dep-check Dependency checker for React Native apps
@rnx-kit/esbuild-plugin-import-path-remapper Esbuild plugin for remapping 'lib/' imports to 'src/'
@rnx-kit/eslint-plugin A set of ESLint rules for React developers
@rnx-kit/golang Integrate Go into your monorepo and create native apps that accelerate development and CI builds
@rnx-kit/jest-preset Jest preset for React Native code bases
@rnx-kit/metro-config Metro config for monorepos
@rnx-kit/metro-plugin-cyclic-dependencies-detector Cyclic dependencies detector for Metro
@rnx-kit/metro-plugin-duplicates-checker Duplicate packages checker
@rnx-kit/metro-resolver-symlinks Metro resolver with support for symlinks
@rnx-kit/metro-serializer Metro's default JavaScript bundle serializer but with plugin support
@rnx-kit/metro-serializer-esbuild Experimental esbuild serializer for Metro
@rnx-kit/metro-service Metro service for bundling and bundle-serving
@rnx-kit/react-native-auth @rnx-kit/react-native-auth provides a cross-app uniform API for user authentication
@rnx-kit/react-native-lazy-index RAM bundle friendly index.js with on-demand loaded modules
@rnx-kit/react-native-test-app-msal Microsoft Authentication Library (MSAL) module for react-native-test-app
@rnx-kit/third-party-notices Library and tool to build a third party notices file based on a js bundle's source map
@rnx-kit/tools-language A collection of supplemental JavaScript functions and types
@rnx-kit/tools-node A collection of supplemental NodeJS functions and types
@rnx-kit/tools-react-native A collection of supplemental react-native functions and types
@rnx-kit/typescript-react-native-compiler TypeScript compiler with a custom module resolver for react-native projects
@rnx-kit/typescript-react-native-resolver TypeScript module resolver for use with react-native projects
@rnx-kit/typescript-service TypeScript language services with support for custom module resolution

Incubator

For experimental work we have a dedicated folder, incubator - the packages collected here are not to be used by the general audience.

Name Description
@rnx-kit/metro-swc-worker wc under the hood
@rnx-kit/patcher-rnmacos A tool to generate patches and apply them to a codebase
@rnx-kit/rn-changelog-generator Generate a markdown-formatted list of changes between two version of react-native

Contributing

This project welcomes contributions and suggestions. See CONTRIBUTING for details.

NOTE: @rnx-kit is still in the early stages of development. We are hard at work, adding new packages and features on a regular basis. Given our focus on building out the first "complete" version of @rnx-kit, supporting external users is not currently a high priority, so we unfortunately cannot guarantee prompt responses at this time.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].