創(chuàng)建 react+typescript 項目
## 安裝腳手架
npm install create-react-app -g
## 創(chuàng)建項目名為my-project的項目
create-react-app my-project --scripts-version=react-scripts-ts
## 啟動項目
cd my-project
yarn start
查看是否運行: localhost:3000
加入 antd 引用
yarn add antd
## 注意: 這里暫時不要安裝react-app-rewired 2.0版本的, 后續(xù)命令行會出錯 這里安裝的是1.6.2版本的
yarn add ts-import-plugin react-app-rewired@1.6.2 react-app-rewire-less --dev
配置修改
-
在根目錄下添加 config-overrides.js 文件
const tsImportPluginFactory = require('ts-import-plugin'); const { getLoader } = require('react-app-rewired'); const rewireLess = require('react-app-rewire-less'); module.exports = function override(config, env) { const tsLoader = getLoader( config.module.rules, rule => rule.loader && typeof rule.loader === 'string' && rule.loader.includes('ts-loader') ); tsLoader.options = { getCustomTransformers: () => ({ before: [ tsImportPluginFactory({ libraryDirectory: 'es', libraryName: 'antd', style: true, }), ], }), }; config = rewireLess.withLoaderOptions({ javascriptEnabled: true, modifyVars: { '@primary-color': '#1DA57A', // 主題色 }, })(config, env); return config; }; -
修改 package.json 中的 script 任務項
"scripts": { "start": "react-app-rewired start --scripts-version react-scripts-ts", "build": "react-app-rewired build --scripts-version react-scripts-ts", "test": "react-app-rewired test --env=jsdom --scripts-version react-scripts-ts" }, -
接下來可以使用 antd 了
import * as React from 'react'; import { Button } from 'antd'; class App extends React.Component { public render() { return ( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <h1 className="App-title">Welcome to React</h1> </header> <p className="App-intro"> <Button type="primary">Button</Button> </p> </div> ); } }
項目地址: https://github.com/VonConfidence/react-typescript-antd