• Stars
    star
    169
  • Rank 224,453 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸš€ Build tools for modern web modules and applications.

RNA logo


RNA is a build framework

We built RNA to be pluggable and to be interoperable with other build systems. A lot of esbuild and postcss plugins are distribuited as standalone packages in order to be reused outside the RNA opinionated ecosystem. We also designed a micro-sdk for esbuild plugin authors that handles transform pipelines and emits chunks or files.

RNA is a bundler

RNA bundler is heavily based on esbuild, an extremely fast JavaScript bundler with some pre-configured addons. It can bundle and optimize JavaScript, TypeScript, JSX, CSS and HTML and collect referenced assets just using languages features.

The bundler is designed for modern browsers, but it can transpile code for IE11 and other legacy browsers with Babel and PostCSS plugins.

RNA is a dev server

Build plugins are also available for the Web Dev Server. Since both WDS and RNA aim to use standard syntax and practises in web projects, you can run a local server with hot module replacement and CSS livereload without have to bundle your web app first or to re-run a partial build for each change. Files loaded via ESM will pass through a little esbuild transpilation in order to support TypeScript, CommonJS modules and node resolution, making a great difference in developer experience. The dev server can be used also for PHP with an Encore-like approach.

RNA is a browser and node test runner

Built on the Web Dev Server, a configured instance of the Web Test Runner is also available for browsers. It comes with coverage and on-the-fly legacy browsers support.

Since RNA aims to support both browser and Node modules, you can test your modules in Node environments using the RNA test runner based on Mocha. Coverage is also available thanks to the v8 coverage tool.

RNA is a cli

Quick usage

$ npm i -D \
    @chialab/rna \
    @chialab/rna-bundler \
    @chialab/rna-dev-server \
    @chialab/rna-browser-test-runner

package.json

{
    "scripts": {
        "start": "rna serve src --port 3000",
        "build": "rna build src/index.html --output public",
        "test": "rna test:browser 'test/**/*.spec'"
    }
}

Tutorials


License

RNA is released under the MIT license.

More Repositories

1

docker-php

🧰 Adding common PHP extensions to some of the official PHP Docker images.
Makefile
433
star
2

dna

🧬 Progressive Web Components.
TypeScript
46
star
3

aws-autoscaling-gitlab-runner

CloudFormation template to deploy a GitLab Runner with auto-scaling on AWS.
44
star
4

math-api

βž— Serverless API to render maths using MathJax for Node.
JavaScript
40
star
5

loock

🧲 Refined keyboard navigation for websites and components.
TypeScript
36
star
6

titillium_pro

19
star
7

a11ygator-extension

Validate the accessibility of your website against W3C's Web Content Accessibility Guidelines.
JavaScript
12
star
8

ansible-couchdb

[READ ONLY] Ansible role to install, configure and initialize CouchDB on Ubuntu.
11
star
9

epubchecker

Validation tool for ePub.
JavaScript
11
star
10

aws-ecr-get-login-password

Simple utility written in Go to output ECR login password to stdout in contexts where AWS CLI cannot be used.
Go
10
star
11

rna-cli

@\depracted @\see https://github.com/chialab/rna
JavaScript
10
star
12

schema-model

Generate Model classes based on JSON Schema definition.
JavaScript
10
star
13

synapse

⚑️ Application framework built on the top of DNA Web Components.
TypeScript
9
star
14

a11ygator-app

🐊 An application and Twitter bot that bites websites to taste their accessibility.
JavaScript
7
star
15

proteins

A primer for JavaScript libraries and frameworks development.
JavaScript
7
star
16

print2pdf

πŸ–¨ Docker image to export HTML pages to PDF wrapping Puppeteer with a simple REST API.
JavaScript
7
star
17

quantum

Custom elements composition made easy.
JavaScript
5
star
18

ses-password

Go CLI to convert IAM Secret Access Key to SES SMTP password.
Go
4
star
19

ansible-letsencrypt-standalone

[READ ONLY] Ansible role to install Certbot and generate SSL certificates via Letsencrypt (standalone plugin).
4
star
20

php-ip

Minimal PHP library to manage IP addresses, subnets, netmasks, etc. without additional dependencies
PHP
4
star
21

titillium

Custom version of Titillium OFL typeface
CSS
3
star
22

streamlined-backup

Lightweight binary written in Go to upload to S3 a buffer coming from a custom script, for remote backups.
Go
3
star
23

docker-buildx-ecr

A Docker image shipped with tools to build multi-arch images with buildx and authenticate against AWS ECR.
Dockerfile
3
star
24

php-object-storage

A collection of adapters for various object storage services.
PHP
3
star
25

ansible-roles

Collection of Ansible roles
Makefile
2
star
26

cells

πŸͺ‘ A strongly opinionated modular utility-first CSS library.
HTML
2
star
27

router-js

A simple agnostic router for Web Apps.
JavaScript
2
star
28

storybook-prebuilt

A prebuilt storybook manager with optimised chunks.
JavaScript
1
star
29

bedita-app-template

A template for BEdita websites and apps.
PHP
1
star
30

ansible-users

[READ ONLY] Ansible role to create users and groups on Ubuntu.
1
star
31

tgs-schema

A JSON Schema that defines a Vibrotactile Graphics.
1
star
32

typos

Typing utilities for WYSIWYG editors.
TypeScript
1
star
33

forge

A library for fonts manipulation built on the top of Opentype.js and Fontkit.
JavaScript
1
star
34

ansible-php5

[READ ONLY] Ansible role to install PHP5 and Composer on Ubuntu.
1
star
35

eslint-config

🚦 Chialab's linting rules for ESLint.
JavaScript
1
star
36

ansible-ntp

[READ ONLY] Ansible role to set up and configure NTP.
1
star
37

speaker

πŸ“’ A text2speech implementation for HTML documents.
TypeScript
1
star
38

dts-apigen

A d.ts and documentation generator for TypeScript and JavaScript projects.
TypeScript
1
star
39

ansible-common

[READ ONLY] Ansible role to perform basic common operations on Ubuntu.
1
star
40

plasma

πŸͺ„ Generate Custom Elements wrappers for Angular, React, Svelte and Vue.
TypeScript
1
star