ts-react-template是一个React项目生成模板。用于生成一个React + Typescript + React Router(可选) + Redux(可选)
的项目。
yarn create esboot ts-react my-app
cd my-app
yarn start
# 推荐使用yarn
yarn create esboot ts-react
# npm >= 6
npm init esboot ts-react
# npm < 6
npx create-esboot ts-react
如果没有指定目录,会询问是否在当前目录创建项目。
Create project under current directory?
根据提示选择,如果选择 否 则会中止创建。
Use react router?
是否需要React Router
Use redux?
是否需要Redux
如果没有错误,则会提示模板已经创建完毕(Success! All files created!
)。
Install all dependence right now?
是否需要立即安装依赖
在依赖安装完毕之后会自动安装husky,但是因为husky依赖git的钩子,所以如果当前项目不是git项目,会有如下提示:
$ husky install
fatal: not a git repository (or any of the parent directories): .git
这时,husky的钩子也处于不可用状态。如果要启用husky,可依次执行以下命令:
git init
yarn prepare
这时候可以测试husky是否生效。
git add .
git commit -m "test"
husky会先触发pre-commit
钩子,检测eslint
和stylelint
。
然后触发commit-msg
钩子,进行 提交信息 检测。上面的test
信息会提示格式不正确,具体的提交格式可以看.commitlintrc.js
。
my-app
|-- .babelrc.js
|-- .browserslistrc # 浏览器兼容列表
|-- .editorconfig # 编辑器配置
|-- .eslintignore
|-- .eslintrc.js
|-- .gitignore
|-- .prettierrc
|-- .stylelintrc
|-- CHANGELOG.md
|-- README.md
|-- config.js # 项目配置文件
|-- esboot.config.js # esboot配置文件
|-- globals.d.ts
|-- package.json
|-- tsconfig.json
|-- webpack.config.js
|-- dev # 开发环境脚本相关
| |-- upgrade-version.js
| |-- zip.js
|-- src
| |-- app.tsx
| |-- index.tsx
| |-- components
| | |-- demo.scss
| | |-- demo.tsx
| |-- global-css
| | |-- main.scss
| |-- images
| | |-- checked@2x.png
| | |-- en.png
| |-- model # Redux相关
| |-- action.ts
| |-- reducer.ts
| |-- store.ts
|-- template
| |-- index.html
module.exports = {
serverPort: 23564, // 开发服务器端口
copyFile: [ // 打包时需要copy的文件
'./config.js',
],
html: [ // 打包入门
{
name: 'Page1',
title: 'Page1',
entry: './src/Page1',
},
{
name: 'Page2',
title: 'Page2',
entry: './src/Page2',
},
// ...
],
};
start / dev
启动开发服务器
build:clear
打生产包
build
- 打生产包
- 自动更新测试版本号
- 压缩文件 到
release/vx.x.x.x.zip
- 为输出目录打开一个静态服务器
preview
为生产输出目录打开一个静态服务器
analyzer
分析生产输出目录文件大小
zip
压缩生产输出目录
eslint
开始js文件格式检测
stylelint
开始样式文件格式检测
lint-staged
对staged中的文件执行eslint
和stylelint
。
commitlint
检测commit信息(一般不用手动执行)
prepare
prepare
钩子,自动配置husky