我通过create-react-app
开始了一个反应项目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
如果两种方法之间存在差异,那么这两种方法的区别是什么?
答案 0 :(得分:2)
npm install --save react-router
安装实际模块,
npm install --save-dev @types/react-router
仅安装typescript的类型信息。类型信息没有自己的功能,因此您需要安装两者
类型信息作为dev依赖项安装,因为在将typescript转换为JavaScript的构建过程之后不需要它。
答案 1 :(得分:1)
问题的答案是肯定的。
安装@types/react-router
您只能获得react-router
的TypeScript类型定义,而不是react-router
功能。