kam*_*myl 125 npm typescript package.json typescript-typings
我在我的项目中使用TypeScript 2.我想使用一些js库,但也使用该库的类型.我可以用简单的方式安装类型npm install @types/some-library.我不确定我应该--save还是--save-dev他们.在我看来,甚至DefinetelyTyped GitHub自述文件都提到了两个版本,但从未解释过它们.我认为@types应该在devDependencies,因为开发需要类型,而不是在运行时使用,但我看到很多次@types dependencies.我糊涂了.
我应该如何决定@ types/*是否进入dependencies或devDependencies?实际上是否有一些或多或少的官方指示?
woo*_*ieb 87
假设您正在开发一个包含"A"的包,它在devDependencies中包含@ types/some-module包.出于某种原因,您要从@ types/some-module导出类型
import {SomeType} from 'some-module';
export default class APackageClass {
constructor(private config: SomeType) {
}
}
Run Code Online (Sandbox Code Playgroud)
现在,包"A"的Typescript使用者无法猜出SomeType是什么,因为未安装包"A"的devDependencies.
在这种特殊情况下,您需要将@ types/*包与常规"依赖"放在一起.对于其他情况,"devDependencies"足够好.
Val*_*tin 46
你在生成捆绑包吗?如果是这样的话,我建议不要花太多时间来讨论那里发生的事情.devDependencies并且dependencies只有在您发布可供其他人使用的程序包并且您不希望使用无用的依赖项对其进行垃圾邮件时才有意义.
把它放进去devDependencies.就像你说的那样"开发需要类型,而不是在运行时使用".
在将Node.js应用程序部署到生产的特定情况下,人们只想安装运行该应用程序所需的依赖项。(使用npm install --production或npm ci --production或yarn production。)在这种情况下,类型应位于中devDependencies,以防止它们使安装过时。
备注:我知道Brad Wilson在对另一个答案的评论中提到了这一点。不过,这一点似乎值得回答。
| 归档时间: |
|
| 查看次数: |
22895 次 |
| 最近记录: |