返回

脚手架搭建:React+TS 完美融合

前端

1. 项目初始化

npx create-react-app my-app --template @typescript/template

或者直接使用yarn:

yarn create react-app my-app --template @typescript/template

项目初始化后,cd进入项目目录,安装必要的依赖包:

yarn add webpack webpack-cli webpack-dev-server css-loader style-loader file-loader url-loader html-webpack-plugin mini-css-extract-plugin terser-webpack-plugin typescript @types/react @types/react-dom @types/node

2. 配置Webpack

在项目根目录创建一个webpack.config.js文件,并添加以下内容:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');

module.exports = {
  entry: './src/index.tsx',
  output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'main.js',
  },
  resolve: {
    extensions: ['.tsx', '.ts', '.js'],
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
      {
        test: /\.css$/,
        use: [MiniCssExtractPlugin.loader, 'css-loader'],
      },
      {
        test: /\.scss$/,
        use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'],
      },
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'images/',
            },
          },
        ],
      },
      {
        test: /\.svg$/,
        use: ['@svgr/webpack'],
      },
      {
        test: /\.(woff|woff2|eot|ttf|otf)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'fonts/',
            },
          },
        ],
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './public/index.html',
      filename: 'index.html',
    }),
    new MiniCssExtractPlugin({
      filename: '[name].[contenthash].css',
    }),
    new TerserPlugin({
      terserOptions: {
        compress: {
          drop_console: true,
        },
      },
    }),
  ],
};

3. 启动开发服务器

yarn start

或者使用npm:

npm start

这将启动一个开发服务器,您可以在浏览器中访问您的应用程序。

4. 构建生产版本

yarn build

或者使用npm:

npm run build

这将构建一个生产版本的应用程序,并将其输出到build目录中。

5. 部署到服务器

您可以使用各种方法将应用程序部署到服务器。一些流行的选择包括:

  • Netlify
  • Github Actions
  • Docker
  • K8s

有关如何将应用程序部署到这些平台的更多信息,请参阅相应的文档。

6. 持续集成和持续交付

您可以使用持续集成和持续交付工具来自动化您的构建、测试和部署过程。一些流行的选择包括:

  • Jenkins
  • Travis CI
  • CircleCI
  • GitLab CI

有关如何使用这些工具的更多信息,请参阅相应的文档。

7. 性能优化

为了优化应用程序的性能,您可以使用各种技术。一些流行的选择包括:

  • 代码拆分
  • 缓存
  • 压缩
  • 懒加载
  • 预加载

有关如何使用这些技术来优化应用程序的性能的更多信息,请参阅相应的文档。

8. 故障排除

如果您在构建或运行应用程序时遇到问题,可以查看以下资源:

  • Webpack文档
  • React文档
  • TypeScript文档
  • Stack Overflow
  • Github

我希望本教程对您有所帮助。如果您有任何问题,请随时在评论中提出。