/pri

Framework for React applications and components.

Primary LanguageTypeScriptMIT LicenseMIT

Pri ยท npm version

Pri is a toolkit for building web applications with React. Helps you deal with everything with develop, so you can focus on the business logic.

Features

Pri can help you develop project and component.

  • ๐ŸŒฑ Auto router. File-based routing out of the box.
  • ๐Ÿ“ Mdx support. Write markdown page easily, just create a file using .md or .mdx as suffixes.
  • ๐ŸŽ‰ Static export. Very easy to deploy to github pages.
  • ๐Ÿ”ข Mocks. Using service worker to mock request!
  • ๐Ÿ“„ WebUI. You can create page, or config files by click button in webui!
  • ๐Ÿš€ Dynamic Import. Automatic page level dynamic routing.
  • ๐Ÿ”ฅ Typescript. 100% typescript source code, for project maintainability considerations, only TS projects are supported!
  • ๐Ÿ›๏ธ Configuration file auto creator. Never worry about configuration files and updates of configuration files. This is automatic.
  • ๐Ÿš„ Auto dll. Speed up hot loader.
  • ๐Ÿ”Œ Pluginable. 20+ built-in plugins, and more community plug-ins.
  • 0๏ธโƒฃ Zero-config.

see Docs

Using pri

Pri is used as a npm package installed in your project.

# 1. Create an empty folder, install pri locally.
$ npm i pri --save # /workspace/my-empty-folder

# 2. Init project files, and you will have following npm scripts.
$ npx pri init # Choose project or component.

# Start dev server
$ npm start

# Start docs server
$ npm run docs

# Build
$ npm run build

# Test
$ npm test
Read more npm scripts.
# Preview of production environment
$ npm run preview

# See bundle size analyse
$ npm run analyse

# Bundle to one file
$ npm run bundle

# Format all sources code
$ npm run format

Using pri plugin

Installing the pri plugin into the project will take effect.

For example, using pri-plugin-dob:

npm i pri-plugin-dob --save

# Now all plugin works
npm start

File Structure

Project:

.
โ”œโ”€โ”€ .temp                     # Gitignored. Temporary file folder.
โ”œโ”€โ”€ coverage                  # Gitignored. Code coverage folder.
โ”œโ”€โ”€ dist                      # Gitignored. Dist folder, auto generated by `npm run build`.
โ”œโ”€โ”€ tests                     # Tests folder.
โ”œโ”€โ”€ src                       # Source files folder.
โ”‚   โ”œโ”€โ”€ pages                 # Page files.
โ”‚   โ”œโ”€โ”€ layouts               # Layout files.
โ”‚   โ”œโ”€โ”€ components            # Component files.
โ”‚   โ””โ”€โ”€ utils                 # Util files.
โ”‚โ”€โ”€ priconfig.json            # Config file.
โ””โ”€โ”€ ...other-files            # Auto generated by `npx pri init`.

Component:

.
โ”œโ”€โ”€ .temp                     # Gitignored. Temporary file folder.
โ”œโ”€โ”€ coverage                  # Gitignored. Code coverage folder.
โ”œโ”€โ”€ dist                      # Gitignored. Dist folder, auto generated by `npm run build`.
โ”œโ”€โ”€ tests                     # Tests folder.
โ”œโ”€โ”€ src                       # Source files folder. Anything here.
โ”‚โ”€โ”€ priconfig.json            # Config file.
โ””โ”€โ”€ ...other-files            # Auto generated by `npx pri init`.

Inspired

Q&A

Using in windows

fedora. Using windows subsystem for Linux.

Migrate from 0.x/1.x to 2.x

Two steps:

  1. Run npx pri-migrate-one-to-two in your project root path.
  2. Reinstall node_modules.