React开发环境create-react-app自定义配置
可以选择
npm run eject
进行自定义,但是正常我们也不需要改那么多配置,也行只需要支持less
编译或者antd
相关组件等等.当然我们也可以完全自己自定义webpack的配置文件.
借助插件重写react脚手架配置:
- 安装
react-app-rewired
和customize-cra
。
- npm i -D react-app-rewired customize-cra
- 修改
package.json
下的scripts
如下:
- "scripts": {
- "start": "react-app-rewired start",
- "build": "react-app-rewired build",
- "test": "react-app-rewired test --env=jsdom",
- "eject": "react-app-rewired eject"
- }
javascript
- 项目根目录下创建
config-overrides.js
配置文件
- /* config-overrides.js */
- const { override } = require('customize-cra')
- module.exports = override(
- //重写的代码
- )
javascript
引入less支持
- 安装
less
和less-loader
- npm i -D less less-loader
- 修改
config-overrides.js
的配置
- /* config-overrides.js */
- const {
- override,
- addLessLoader
- } = require('customize-cra')
- module.exports = override(
- addLessLoader(), // less插件
- )
actionscript
引入antd支持,按需加载
- 安装
antd
和babel-plugin-import
- npm i -S antd
- npm i -D babel-plugin-import
- 修改
config-overrides.js
的配置
- /* config-overrides.js */
- const {
- override,
- addLessLoader,
- fixBabelImports //按需加载配置函数
- } = require("customize-cra");
- module.exports = override(
- fixBabelImports('import', {
- libraryName: 'antd',
- libraryDirectory: 'es',
- style: true //自动打包相关的样式 默认为 style:'css'
- }),
- // addLessLoader(),
- // 自定义样式
- addLessLoader({
- lessOptions: {
- javascriptEnabled: true,
- modifyVars: { '@primary-color': '#1DA57A' },
- },
- }),
- )
javascript
引入装饰器支持
- 修改
config-overrides.js
的配置
- /* config-overrides.js */
- const {
- override,
- addDecoratorsLegacy, // 装饰器支持
- } = require("customize-cra");
- module.exports = override(
- addDecoratorsLegacy(), // 装饰器支持
- )
javascript
总结
本次使用create-react-app
脚手架创建了项目,集成了react-router、antd、less。具体配置如下:
- // config-overrides.js
- const {
- override,
- addDecoratorsLegacy,
- addLessLoader,
- fixBabelImports //按需加载配置函数
- } = require("customize-cra");
- module.exports = override(
- addDecoratorsLegacy(),
- fixBabelImports('import', {
- libraryName: 'antd',
- libraryDirectory: 'es',
- style: true //自动打包相关的样式 默认为 style:'css'
- }),
- // addLessLoader(),
- addLessLoader({
- lessOptions: {
- javascriptEnabled: true,
- modifyVars: { '@primary-color': '#1DA57A' },
- },
- }),
- );
javascript
- // package.json
- {
- "name": "piano-ms-client",
- "version": "0.1.0",
- "private": true,
- "dependencies": {
- "@testing-library/jest-dom": "^4.2.4",
- "@testing-library/react": "^9.5.0",
- "@testing-library/user-event": "^7.2.1",
- "antd": "^4.3.5",
- "react": "^16.13.1",
- "react-dom": "^16.13.1",
- "react-router-dom": "^5.2.0",
- "react-scripts": "3.4.1"
- },
- "scripts": {
- "start": "react-app-rewired start",
- "build": "react-app-rewired build",
- "test": "react-app-rewired test --env=jsdom",
- "eject": "react-scripts eject"
- },
- "eslintConfig": {
- "extends": "react-app"
- },
- "browserslist": {
- "production": [
- ">0.2%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
- },
- "devDependencies": {
- "babel-plugin-import": "^1.13.0",
- "customize-cra": "^1.0.0",
- "less": "^3.11.3",
- "less-loader": "^6.1.3",
- "react-app-rewired": "^2.1.6"
- }
- }
json
Comments
请在后台配置评论类型和相关的值。