将 d.ts 文件添加到 JavaScript npm 包是否是 SemVer 规则的重大更改?
Is adding a d.ts file to a JavaScript npm package a breaking change by SemVer rules?
如果我有一个不依赖 TypeScript 的纯 JavaScript npm 包,我想添加一个 d.ts type declaration file to it, along with a new "types"
property in the package.json
pointing to the file, would that be considered a breaking change? Would it necessitate a major version bump according to SemVer?
我可以看到任何一种方式,因为它根本不会影响 JavaScript,并且不会破坏任何东西的 API。但是,如果有人在 TypeScript 项目中使用该库并为该库创建了自己的 d.ts 类型,它可能会与这些类型发生冲突,例如出现“重复标识符”错误。
SemVer 状态
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
添加类型声明文件显然不是错误修复,因此显然不是#3。这里的关键是,如果你添加一个类型声明文件,所有使用 API 的代码都不会中断,因为实际的 js 代码不会改变。因此,没有任何不兼容的 API 更改,这是向后兼容性的另一种说法。
这意味着,如果您添加类型声明文件,则增加次要版本号。
如果我有一个不依赖 TypeScript 的纯 JavaScript npm 包,我想添加一个 d.ts type declaration file to it, along with a new "types"
property in the package.json
pointing to the file, would that be considered a breaking change? Would it necessitate a major version bump according to SemVer?
我可以看到任何一种方式,因为它根本不会影响 JavaScript,并且不会破坏任何东西的 API。但是,如果有人在 TypeScript 项目中使用该库并为该库创建了自己的 d.ts 类型,它可能会与这些类型发生冲突,例如出现“重复标识符”错误。
SemVer 状态
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
添加类型声明文件显然不是错误修复,因此显然不是#3。这里的关键是,如果你添加一个类型声明文件,所有使用 API 的代码都不会中断,因为实际的 js 代码不会改变。因此,没有任何不兼容的 API 更改,这是向后兼容性的另一种说法。
这意味着,如果您添加类型声明文件,则增加次要版本号。