【问题标题】:Need I install react-router if I installed @types/react-router?如果我安装了@types/react-router,我需要安装 react-router 吗?
【发布时间】:2018-06-16 02:06:33
【问题描述】:

我通过 create-react-app 启动了一个 react 项目

create-react-app my-app --scripts-version=react-scripts-ts

我得到了以下 package.json

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "react-scripts-ts": "2.16.0"
  },
  "scripts": {
    "start": "react-scripts-ts start",
    "build": "react-scripts-ts build",
    "test": "react-scripts-ts test --env=jsdom",
    "eject": "react-scripts-ts eject"
  },
  "devDependencies": {
    "@types/jest": "^23.1.0",
    "@types/node": "^10.3.3",
    "@types/react": "^16.3.18",
    "@types/react-dom": "^16.0.6",
    "typescript": "^2.9.2"
  }
}

我了解构建生产包不需要 devDependencies 中的包,因此我们分别拥有依赖项和 devDependencies。但是,如果我想添加一个新的包,例如react-router,我应该像下面一样分别做以下两个吗?

npm install --save react-router
npm install --save-dev @types/react-router

或者我应该这样做

npm install --save @types/react-router

如果可以的话,这两种方法有什么区别?

【问题讨论】:

    标签: reactjs typescript npm


    【解决方案1】:

    npm install --save react-router 安装实际模块,而
    npm install --save-dev @types/react-router 仅安装 typescript 的类型信息。类型信息没有自己的功能,因此您需要同时安装两者。
    类型信息作为开发依赖项安装,因为在将 typescript 转换为 JavaScript 的构建过程之后不需要它。

    【讨论】:

      【解决方案2】:

      这个问题的答案是肯定的。

      安装@types/react-router,您只能获得react-router 的TypeScript 类型定义,而不是react-router 功能。

      【讨论】:

        猜你喜欢
        • 2022-11-10
        • 2021-09-19
        • 2022-11-18
        • 2021-04-03
        • 2016-09-20
        • 2018-04-19
        • 1970-01-01
        • 2020-11-17
        • 2020-12-20
        相关资源
        最近更新 更多