react base runtime ecosystem
## step1 install to global
npm install -g jeco
## step2 make project folder
mkdir react-app && cd react-app
## step3 init project
jr init
{
"entry": "./src/index.tsx",
"port": "8080",
"title": "Page title",
"template": "./src/app.html",
"eslintConfigPath": "./.eslintrc.json",
"micro": {
"projectId": "pj01",
"isRuntimeAssets": true,
"publicPath": {
"local": "http://localhost:8080/",
"dev": "http://localhost:8080/"
}
}
}
}
Property | Description | Default | Required |
---|---|---|---|
entry | project entry file path | /container/index.tsx (only read) | false |
port | devServer port | 8080 | false |
title | pageTitle | Page Title | false |
template | html base file path | /container/app.html (only read) | false |
eslintConfigPath | custom eslint config | /.eslintrc.json (only read) | false |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<div id="app"></div>
</body>
</html>
import React from 'react';
import { render } from 'react-dom';
render(<>Hello world</>, document.getElementById('app'));
- Insert file(js,jsx,ts,tsx) to './src/pages' folder
- auto mapping to router
-
sub project create '.env.prod' file
DB_HOST=127.0.0.11 DB_PASS=dafjlkdajs2 S3_API=mysecretkey
-
script run
jr dev|start|build -e prod(.env.prod)
-
use to component
<div>DBHOST: {process.env.DB_HOST}</div>
## dev mode
jr dev, jr start
## build mode(production)
jr build
## lint
jr lint
## fix
jr fix
## test
jr test
## analyz
jr analyz
css(not support modules), less, sass, scss, stylus
// sample
import s from './style.stylus';
const App = () => <div className={s.style}></div>
# add
export SMP='smp'
# remove
export SMP=''