我如何使用node/semver从一系列版本中获取最新版本(包括预发行版)。
例如:
var semver = require("semver");
var versions = ["1.0.0-rc.10","1.0.0-rc.11"];
console.log(semver.maxSatisfying(versions, "*"));
Run Code Online (Sandbox Code Playgroud)
返回 null,但我想找回 1.0.0-rc.11。
亲切的问候,祝你有美好的一天!
与许多语言不同,Swift语言switch必须详尽无遗,所以如果我有:
enum Enumeration
{
case A
case B
}
Run Code Online (Sandbox Code Playgroud)
然后此代码无效:
switch enumeration
{
case .A:
break
}
Run Code Online (Sandbox Code Playgroud)
但是,这些是有效的:
switch enumeration
{
case .A:
break
case .B:
break
}
switch enumeration
{
case .A:
break
default:
break
}
Run Code Online (Sandbox Code Playgroud)
如果稍后添加case C到Enumeration,则第一个有效代码现在将产生编译器错误。第二个有效,因为它使用default:,它将捕获.C。
如果我符合semver的支持carthage(或Swift Package Manager)支持,我是否必须为此增加主版本?
对此的扩展适用于Objective-C(并隐含C)。由于Swift像Swift枚举一样支持C枚举,因此这也适用于打算在Swift中使用的Objective-C或C框架。我不确定如何解决这个问题,因为这些语言没有这种限制(如果您的编译器很好,则只是警告)。
假设我的 1.0.0 npm 包公开公开了一个函数,foo供用户在许多其他函数和特性中使用。
然后,我删除了该foo功能,该功能将对所有使用该功能的用户造成破坏。
NPM 说:
破坏向后兼容性的更改:主要版本,增加第一个数字,例如 2.0.0
我很困惑这到底意味着什么。如果我们破坏了用户的更改,即使只是一个很小的更改(例如删除功能),是否应该始终更新主版本号?
目前,每当我可能破坏公开暴露的功能时,我都会更新主要编号。我看到 npm 软件包的主要版本较小,并认为我这样做是不正确的,因为我正在非常快地更新我自己的软件包主要版本号。
我的 package.json 文件中有一个 npm 包
"clean-webpack-plugin": "^0.1.18"
Run Code Online (Sandbox Code Playgroud)
现在当我将鼠标悬停在包上时,我可以看到有一个更新的版本
"clean-webpack-plugin": "^0.1.19"
Run Code Online (Sandbox Code Playgroud)
现在,据我npm update所知,例如,我可以更新所有遵守 semver 规则的包或仅更新 package npm update clean-webpack-plugin。
所以插入^符号应该意味着,0.9.9如果可用,您可以将包更新到版本,对吗?
npm update 没有效果,这就是我问的原因。
当我尝试运行 JHipster 时jhipster --version出现以下错误。我知道它与 node js 有关,但我无法解决它。请你的建议。
internal/modules/cjs/loader.js:573
throw err;
^
Error: Cannot find module 'semver'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:571:15)
at Function.Module._load (internal/modules/cjs/loader.js:497:25)
at Module.require (internal/modules/cjs/loader.js:626:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/usr/bin/jhipster:20:16)
at Module._compile (internal/modules/cjs/loader.js:678:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
at Module.load (internal/modules/cjs/loader.js:589:32)
at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
at Function.Module._load (internal/modules/cjs/loader.js:520:3)
Run Code Online (Sandbox Code Playgroud) 我是灵丹妙药的新手。我想知道版本的组织方式以及如何知道哪个版本是最新的?我的机器中有 elixir 1.2 版,但我听说过 1.9 和 1.7 版,尽管它们似乎比 1.2 版早。
我有一个我喜欢编码的辅助项目,我尽可能花时间,因为我还在完成大学学业.当我开始它时,我几乎不知道好的编程实践和TDD等等,我只是为了好玩而编码.
之后的几次迭代,重构,改进和积累的知识使我在实现新功能之前编写单元测试和集成测试.但是,我仍然没有足够的时间来进行所有测试以获得可接受的代码覆盖率......尽管软件运行良好.
因此,当我有时间花在这个项目上时,我想实现新的功能(这次是,并行进行单元测试)没有做很多测试,不得不说非常无聊,而且很多很难因为嘲弄和东西......
我应该继续添加功能还是应该先完成所有测试?
我确定软件应该是测试版,直到达到合理的代码覆盖率.这时它是版本0.9-beta.
如果我添加新功能,我应该遵循保留测试版的语义版本吗?例如,作为下一次迭代0.10-beta,0.11-beta依此类推,直到测试完成,最后它将转向非beta版本.
如果你想检查我的项目,请点击链接: octaviospain.github.io/Musicott