栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将create-react-app从javascript迁移到打字稿

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将create-react-app从javascript迁移到打字稿

我找到了一种将create-react-app从javascript迁移到打字稿的解决方案,这种方式 不需要 弹出。

  1. 通过运行命令使用打字稿创建一个临时react项目
    create-react-app --scripts-version=react-scripts-ts
    (注意-需要
    create-react-app
    全局安装)
  2. 在您自己的项目中-在
    package.json
    文件下删除
    react-scripts
  3. react-scripts-ts
    通过运行命令添加到您的项目,
    yarn add react-scripts-ts
    或者如果您正在使用npm,则添加
    npm install react-scripts-ts
    。或者,添加
    "react-scripts-ts": "2.8.0"
    到package.json。
  4. 从您在步骤1中创建的项目中,将文件:复制
    tsconfig.json, tsconfig.test.json tslint.json
    到您自己的项目中
  5. 在自己的项目中
    package.json
    ,根据脚本部分,将
    react-scripts
    实例
    react-scripts-ts
    (应该是下
    start
    build
    test
    eject
  6. 安装分型为通过安装使用纱或NPM以下模块反应:
    @types/node
    @types/react
    @types/react-dom
    devDependencies
    如果使用package.json,请放在部分中。
  7. index.js
    文件名更改为
    index.tsx
  8. 在您的tsconfig.json文件中,添加以下配置:
    "allowSyntheticDefaultimports": true
    - 有关更多信息

注意 步骤7可能需要进行其他修改,具体取决于index.js文件中的内容(如果它取决于项目中的JS模块)。

现在,您可以运行您的项目,它可能会工作,对于那些遇到

You may need an appropriate loader to handle thisfiletype
有关.js文件错误的人来说,它发生是因为babel不知道如何从.tsx文件中加载.js文件。我们需要做的是更改项目配置。我发现不运行
eject
就可以使用react-
app-rewired
包。该软件包可让您配置外部配置,该配置将被添加/覆盖默认项目设置。我们将使用babel加载这些类型的文件。让我们继续:

  1. react-app-rewired
    使用yarn或npm 安装软件包
  2. 在您的根文件夹(
    package.json
    位于其中)中创建一个新文件,名称为
    config-overrides.js
  3. 将此代码放在
    config-overrides
    文件中:
        var paths = require('react-scripts-ts/config/paths')    module.exports = function override(config) {      config.module.rules.push({        test: /.(js|jsx)$/,        include: paths.appSrc,        loader: require.resolve('babel-loader'),        options: { babelrc: false, presets: [require.resolve('babel-preset-react-app')], cacheDirectory: true,        },      })      return config    }

编辑的package.json所以

start/start-js
build
test
,和
eject
脚本使用反应-APP-
重新接线如图所示项目自述。例如
"test": "react-app-rewired test --scripts-version react-scripts-ts --env=jsdom"

现在您可以启动项目,并且应该解决问题。您可能需要根据项目(其他类型等)进行其他修改。

希望能帮助到你

如注释中的建议,可以定义:

"compilerOptions": { "allowJs":true}
在tsconfig.json文件中,因此您可以混合JS和TS,而无需react-app-rewired。谢谢提这个!

更新: create-react-app版本2.1.0支持打字稿,因此对于那些从头开始的人来说,您可以使用它来创建带有打字稿的新应用程序,并且根据文档,应使用以下命令来完成:

$ npx create-react-app my-app --typescript

对于现有项目,在更新到版本2.1.0之后,使用以下命令将以下软件包添加到项目的依赖项中:

$ npm install --save typescript @types/node @types/react @types/react-dom @types/jest

然后您可以简单地将.js重命名为.ts文件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号