返回

React 全套环境配置:构建强大、类型安全的 Web 应用程序

前端

前言

React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并维护。它采用声明式编程范式,使开发人员能够轻松地创建交互式用户界面。Typescript 是 JavaScript 的超集,它增加了类型系统,使开发人员能够编写出更健壮的代码。Enzyme 是一个用于测试 React 组件的工具库,它提供了丰富的 API,使开发人员能够轻松地测试组件的行为。Jest 是一个用于测试 JavaScript 代码的工具库,它提供了丰富的功能,使开发人员能够轻松地编写和运行测试用例。Less 是一个用于编写 CSS 预处理器的语言,它提供了许多有用的功能,如变量、函数、嵌套规则等。Bootstrap 是一个用于构建响应式、移动端友好的 Web 应用程序的工具库,它提供了丰富的组件和样式,使开发人员能够快速地构建出美观、实用的 Web 应用程序。

安装依赖

在开始之前,我们需要先安装必要的依赖。您可以使用以下命令安装这些依赖:

npm install --save react react-dom typescript @types/react @types/react-dom enzyme enzyme-adapter-react-16 jest less less-loader bootstrap

安装完成后,您可以在项目中创建一个名为 package.json 的文件,并添加以下内容:

{
  "name": "my-react-app",
  "version": "1.0.0",
  "description": "A React application",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --open",
    "build": "webpack",
    "test": "jest"
  },
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "typescript": "^4.5.5",
    "@types/react": "^17.0.34",
    "@types/react-dom": "^17.0.11",
    "enzyme": "^3.11.0",
    "enzyme-adapter-react-16": "^1.15.7",
    "jest": "^27.5.1",
    "less": "^4.1.1",
    "less-loader": "^10.2.0",
    "bootstrap": "^5.1.3"
  },
  "devDependencies": {
    "webpack": "^4.46.0",
    "webpack-cli": "^4.9.1",
    "webpack-dev-server": "^4.7.4"
  }
}

配置 Webpack

接下来,我们需要配置 Webpack。Webpack 是一个用于构建 JavaScript 和 CSS 代码的工具。您可以使用以下命令安装 Webpack 和相关的插件:

npm install --save-dev webpack webpack-cli webpack-dev-server

安装完成后,您可以在项目中创建一个名为 webpack.config.js 的文件,并添加以下内容:

const path = require('path');

module.exports = {
  entry: './src/index.tsx',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  resolve: {
    extensions: ['.ts', '.tsx', '.js', '.jsx']
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader'
      },
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'less-loader'
        ]
      }
    ]
  }
};

配置 TypeScript

接下来,我们需要配置 TypeScript。TypeScript 是一个用于编译 TypeScript 代码的工具。您可以使用以下命令安装 TypeScript 和相关的插件:

npm install --save-dev typescript ts-loader

安装完成后,您可以在项目中创建一个名为 tsconfig.json 的文件,并添加以下内容:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true
  },
  "include": [
    "src"
  ]
}

配置 Enzyme

接下来,我们需要配置 Enzyme。Enzyme 是一个用于测试 React 组件的工具库。您可以使用以下命令安装 Enzyme 和相关的插件:

npm install --save-dev enzyme enzyme-adapter-react-16

安装完成后,您可以在项目中创建一个名为 enzyme.config.js 的文件,并添加以下内容:

const Enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-16');

Enzyme.configure({ adapter: new Adapter() });

配置 Jest

接下来,我们需要配置 Jest。Jest 是一个用于测试 JavaScript 代码的工具库。您可以使用以下命令安装 Jest 和相关的插件:

npm install --save-dev jest

安装完成后,您可以在项目中创建一个名为 jest.config.js 的文件,并添加以下内容:

module.exports = {
  transform: {
    '^.+\\.tsx?
module.exports = {
  transform: {
    '^.+\\.tsx?$': 'ts-jest'
  },
  testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
};
#x27;
: 'ts-jest' }, testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)
module.exports = {
  transform: {
    '^.+\\.tsx?$': 'ts-jest'
  },
  testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
};
#x27;
, moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'] };

创建应用程序

现在,我们可以开始创建我们的应用程序了。在项目中创建一个名为 src 的文件夹,并在其中创建一个名为 index.tsx 的文件,并添加以下内容:

import React from 'react';
import ReactDOM from 'react-dom';

const App = () => {
  return (
    <div>
      <h1>Hello, world!</h1>
    </div>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));

在项目中创建一个名为 public 的文件夹,并在其中创建一个名为 index.html 的文件,并添加以下内容:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
</head>
<body>
  <div id="root"></div>
  <script src="bundle.js"></script>
</body>
</html>

运行应用程序

现在,我们可以运行我们的应用程序了。您可以使用以下命令运行应用程序:

npm start

应用程序将在本地