Open zzkkui opened 4 years ago
yarn init -y
yarn add webpack webpack-cli webpack-merge webpack-dev-server --dev
yarn add html-webpack-plugin --dev
配置 html-webpack-plugin
new HtmlWebpackPlugin({ template: 'public/index.html', inject: true, minify: { collapseWhitespace: true, collapseBooleanAttributes: true, collapseInlineTagWhitespace: true, removeComments: true, removeRedundantAttributes: true, removeScriptTypeAttributes: true, removeStyleLinkTypeAttributes: true, minifyCSS: true, minifyJS: true, minifyURLs: true, useShortDoctype: true, }, })
yarn add clean-webpack-plugin --dev
webpack3版本是通过配置CommonsChunkPlugin插件来抽离公共的模块。webpack4版本,官方废弃了CommonsChunkPlugin,而是改用配置optimization.splitChunks的方式,更加方便。
yarn add terser-webpack-plugin --dev
yarn add optimize-css-assets-webpack-plugin --dev
yarn add style-loader css-loader less less-loader file-loader url-loader --dev
MiniCssExtractPlugin:打包单独的css文件
yarn add mini-css-extract-plugin --dev
yarn add postcss postcss-loader autoprefixer postcss-flexbugs-fixes postcss-normalize postcss-preset-env postcss-safe-parser --dev
在根目录新建postcss.config.js
module.exports = { plugins: [ require('autoprefixer') ], }
yarn add react react-dom
yarn add babel-loader @babel/preset-react @babel/preset-env @babel/core core-js --dev
{ "presets": [ [ "@babel/preset-env", { // 给文件自动添加polyfill "useBuiltIns": "usage", // 配合 useBuiltIns: usage 使用 "corejs": 3, "modules": "auto", } ], "@babel/preset-react" ] }
安装 typescript
yarn add typescript --dev
初始化 typescript 配置文件
tsc --init
安装 @babel/preset-typescript
yarn add @babel/preset-typescript --dev
安装 ForkTsCheckerWebpackPlugin
安装
yarn add eslint eslint-loader --dev
eslint 初始化(根据需要初始化 eslint 配置)
eslint init
eslint --init 可以交互式的生成需要的 eslint 配置和安装一些需要的依赖包
结合Prettier和ESLint来规范代码
yarn add prettier eslint-config-prettier eslint-plugin-prettier --dev
其他eslint插件
yarn add husky lint-staged --dev
修改 package.json
"husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "*.{ts,tsx,js,jsx}": [ "npm run eslint", "prettier .prettierrc.js --write", "git add" ] }
参考:
yarn add react-hot-loader @hot-loader/react-dom --dev
yarn add jest babel-jest @babel/preset-env @babel/preset-react react-test-renderer --dev
生成配置
jest --init
可以根据官方提供的配置属性来定制化配置
并通过 jQuery 风格的方式进行DOM 处理,开发体验十分友好。可转换react组件
yarn add enzyme enzyme-adapter-react-16 --dev
enzyme 的断言库,增加可读性,简化测试代码
yarn add jest-enzyme --dev
enzyme 更适合测试实例方法,而react-testing-library更侧重测试DOM,专注于用户行为。目前官方脚手架使用的 react-testing-library
react + ts 模板
npm init(yarn init)
安装 webpack(4.x)
安装 html-webpack-plugin
配置 html-webpack-plugin
安装 clean-webpack-plugin
配置 optimization
webpack 4 Code Splitting 的 splitChunks配置探索
配置 loader
MiniCssExtractPlugin:打包单独的css文件
在根目录新建postcss.config.js
其他插件
安装 react
使用babel 7
配置 .babelrc
其他 babel 插件
使用 typescript
安装 typescript
初始化 typescript 配置文件
安装 @babel/preset-typescript
安装 ForkTsCheckerWebpackPlugin
使用 eslint
安装
eslint 初始化(根据需要初始化 eslint 配置)
eslint --init 可以交互式的生成需要的 eslint 配置和安装一些需要的依赖包
结合Prettier和ESLint来规范代码
其他eslint插件
commit 前校验代码
修改 package.json
参考:
热更新
jest
安装
生成配置
可以根据官方提供的配置属性来定制化配置
enzyme
并通过 jQuery 风格的方式进行DOM 处理,开发体验十分友好。可转换react组件
jest-enzyme
enzyme 的断言库,增加可读性,简化测试代码
enzyme vs react-testing-library
enzyme 更适合测试实例方法,而react-testing-library更侧重测试DOM,专注于用户行为。目前官方脚手架使用的 react-testing-library
其他相关