1、webpack 项目(不含 Vue、 React)
安装
npm install webpack webpack-cli typescript ts-loader --save-dev
npm install @types/node @types/webpack --save-dev
相关配置
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.tsx',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx']
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
devtool: 'source-map'
};
// tsconfig.json
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "es6",
"target": "es5",
"allowJs": true,
"jsx": "react",
"moduleResolution": "node",
"sourceMap": true,
"baseUrl": ".",
"paths": {
"*": ["node_modules/*", "src/types/*"]
}
},
"include": ["src/**/*"]
}
2、适配 React 项目
安装
npm install react react-dom
npm install @types/react @types/react-dom --save-dev
相关配置
3、适配 React、eslint
安装
npm install eslint @typescript-eslint/parser
@typescript-eslint/eslint-plugin eslint-plugin-react
eslint-plugin-react-hooks eslint-plugin-jsx-a11y --save-dev
相关配置
{
"parser": "@typescript-eslint/parser",
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:jsx-a11y/recommended"
],
"plugins": ["react", "@typescript-eslint", "jsx-a11y"],
"settings": {
"react": {
"version": "detect"
}
},
"rules": {
"react/react-in-jsx-scope": "off",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-explicit-any": "off"
},
"env": {
"browser": true,
"es6": true,
"node": true
},
"globals": {
"React": "writable"
},
"parserOptions": {
"ecmaVersion": 2020,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
}
}