当前位置: 首页 > news >正文

新建一个 React TypeScript 项目,并使用 Webpack 进行构建和打包

要用 create-react-app 新建一个 React TypeScript 项目,并使用 Webpack 进行构建和打包,可以按照以下步骤进行操作:

步骤 1:使用 create-react-app 创建 React TypeScript 项目

  1. 确保你已经安装了 Node.js 和 npm(Node 包管理器)。

  2. 打开命令行工具,运行以下命令来安装 create-react-app

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

    这里的 my-app 是你项目的名称,可以根据需要更改。

步骤 2:安装 Webpack 和相关插件

  1. 进入项目目录:

    cd my-app
    
  2. 安装 Webpack 和相关插件:

    npm install --save-dev webpack webpack-cli webpack-dev-server typescript ts-loader
    
  3. 安装一些常用的 Webpack 插件:

    npm install --save-dev html-webpack-plugin clean-webpack-plugin babel-loader @babel/preset-env @babel/preset-typescript @babel/preset-react style-loader css-loader url-loader image-webpack-loader
    

步骤 3:配置 Webpack

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

    const path = require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const { CleanWebpackPlugin } = require('clean-webpack-plugin');module.exports = {entry: './src/index.tsx',output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist')},devtool: 'inline-source-map',devServer: {port: 8080, // you can change the porthot: true},resolve: {extensions: ['.ts', '.tsx', '.js']},module: {rules: [{test: /\.(ts|js)x?$/,exclude: /node_modules/,use: {loader: "babel-loader",options: {presets: ["@babel/preset-env","@babel/preset-typescript","@babel/preset-react",],},},},{test: /\.tsx?$/,use: 'ts-loader',exclude: /node_modules/},{test: /\.css$/,use: ['style-loader', 'css-loader']},{test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,use: [{loader: "url-loader",options: {limit: 10000,name: "img/[name]_[hash:8].[ext]",},},{loader: "image-webpack-loader",options: {disable: true, // webpack@2.x and newer},},],},]},plugins: [new CleanWebpackPlugin(),new HtmlWebpackPlugin({template: './public/index.html'})]
    };
    
  2. package.json 文件中添加以下脚本:

    "scripts": {"dev": "webpack serve --open --config webpack.config.js --mode development","build": "webpack --config webpack.config.js --mode production"
    }
    

步骤 4:更新 TypeScript 配置

  1. 创建一个 tsconfig.json 文件(如果 create-react-app 已经生成了一个,你可以根据需要进行修改):

    {"compilerOptions": {"target": "es5","lib": ["dom", "es2015"],"allowJs": true,"skipLibCheck": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"strict": true,"forceConsistentCasingInFileNames": true,"noFallthroughCasesInSwitch": true,"module": "esnext","moduleResolution": "node","resolveJsonModule": true,"isolatedModules": true,"noEmit": false,"jsx": "react-jsx"},"include": ["src"]
    }
    

步骤 5:启动开发服务器

  1. 运行以下命令启动开发服务器:

    npm run dev
    
  2. 访问浏览器中的 http://localhost:8080,你应该能看到你的 React 应用正在运行。

步骤 6:构建项目

  1. 运行以下命令构建项目:

    npm run build
    

构建后的文件将会放在 dist 目录中,你可以将其用于部署。

通过以上步骤,你已经成功创建了一个使用 TypeScript 的 React 项目,并使用 Webpack 进行构建和打包。

相关文章:

  • Java程序之让气球上升
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
  • git配置ssh key
  • tensorRT C++使用pt转engine模型进行推理
  • express+vue 在线五子棋(一)
  • 使用Vue开发页面(前置知识)
  • npm全局安装依赖指定存放文件目录
  • 电子电气架构——由NRC优先级引起的反思
  • 华为appgallery上架
  • 借助AI快速提高英语听力:如何获得适合自己的听力材料?
  • Python爬虫介绍
  • 2024 年值得推荐的 10 款 iPhone 数据恢复软件
  • Less与Sass的区别
  • Mac数据如何恢复?3 款最佳 Mac 恢复软件
  • 汽车网络安全 -- 漏洞该如何管理
  • android图片蒙层
  • flutter的key在widget list的作用以及必要性
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • javascript面向对象之创建对象
  • Lsb图片隐写
  • MD5加密原理解析及OC版原理实现
  • Netty 4.1 源代码学习:线程模型
  • php的插入排序,通过双层for循环
  • sessionStorage和localStorage
  • storm drpc实例
  • 给Prometheus造假数据的方法
  • 关于字符编码你应该知道的事情
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 简单易用的leetcode开发测试工具(npm)
  • 前端面试总结(at, md)
  • 小李飞刀:SQL题目刷起来!
  • 译米田引理
  • Java总结 - String - 这篇请使劲喷我
  • 进程与线程(三)——进程/线程间通信
  • 如何在招聘中考核.NET架构师
  • 正则表达式-基础知识Review
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #《AI中文版》V3 第 1 章 概述
  • #php的pecl工具#
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (计算机网络)物理层
  • (六)vue-router+UI组件库
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)四层和七层负载均衡的区别
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net 设置默认首页
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /etc/shadow字段详解