react base runtime ecosystem
npm install jeco!webpack
!react
!eslint
!esbuild
!esbuild-loader
!typescript
react base runtime ecosystem
sh
step1 install to global
npm install -g jeco
step2 make project folder
mkdir react-app && cd react-app
step3 init project
jr init
`Options
$3
`js
{
"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 |
#### src/index.html (sample)
`html
<%= htmlWebpackPlugin.options.title %>
`#### src/index.tsx (sample)
`tsx
import React from 'react';
import { render } from 'react-dom';render(<>Hello world>, document.getElementById('app'));
`create page (default entry)
- Insert file(js,jsx,ts,tsx) to './src/pages' folder
- auto mapping to router
env
1. sub project create '.env.prod' file
`
DB_HOST=127.0.0.11
DB_PASS=dafjlkdajs2
S3_API=mysecretkey
`2. script run
`
jr dev|start|build -e prod(.env.prod)
`3. use to component
`jsx
DBHOST: {process.env.DB_HOST}
`
script
`sh
dev mode
jr dev, jr startbuild mode(production)
jr buildlint
jr lintfix
jr fixtest
jr testanalyz
jr analyz
`use style
css(not support modules), less, sass, scss, stylus
`js
// sample
import s from './style.stylus';const App = () =>
`webpack build time check(DEV)
`sh
add
export SMP='smp'
remove
export SMP=''
``