标签: semantic-versioning

package.json中的波浪号(〜)和插入符号(^)有什么区别?

我已经升级到最新的稳定后nodenpm,我试过npm install moment --save.它package.json使用^前缀保存条目.以前,它是一个~前缀.

  1. 为什么要进行这些更改npm
  2. ~和之间有什么区别^
  3. 比其他人有什么优势?

node.js npm semantic-versioning package.json

3111
推荐指数
18
解决办法
69万
查看次数

什么是bower(和npm)版本语法?

Bower使我能够使用以下语法指定包的版本要求:

"dependencies": {
  "<name>": "<version>",
},
Run Code Online (Sandbox Code Playgroud)

但我一直无法找到用于该语法的语法<version>.我知道我可以指定版本:

  • 大于特定版本 ">1.0.0"
  • 大于或等于版本: ">=1.0.0"
  • 或在某些范围内:"1.0.0 - 2.0.0".

我也知道有一个包含代字号的通用版本语法:"~1.0.0".但我不确定它是什么意思,是否与它相同"=1.0.0".

我也有兴趣知道我是否能够指定多个非连续版本,例如完全1.0.3加上大于1.5.0等的版本等...

node.js semantic-versioning bower

273
推荐指数
5
解决办法
11万
查看次数

包裹 SemVer 错误

所以,我以前多次使用 Parcel,我从来没有遇到过问题。这一次它抛出了一些关于 SemVer 版本控制的愚蠢错误,我真的很想找到解决这个问题的解决方案。

我开始了新项目:安装了 npm w/ npm init(没有其他选项),然后安装了 Parcel npm install --save-dev parcel-bundler,然后创建了我的文件夹结构:

--node_modules
--index.html
--index.js

这是我的 package.json:

{
  "name": "playground",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "parcel index.html"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "parcel-bundler": "^1.12.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经配置了默认的 npm 脚本来运行包:"dev": "parcel index.html"并运行它。一切正常,但是当我通过<script src="/index.js"></script>它在 index.html 中连接我的 index.js 时,它会抛出很大的错误,说:

D:\workingSpace\playground\index.js: Invalid Version: undefined
  at new SemVer (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:314:11)
  at compare (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:647:10)   
  at lt (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:688:10)        
  at D:\workingSpace\playground\node_modules\@babel\preset-env\lib\index.js:276:22
  at Object.default (D:\workingSpace\playground\node_modules\@babel\helper-plugin-utils\lib\index.js:22:12)     
  at …
Run Code Online (Sandbox Code Playgroud)

parcel node.js semantic-versioning node-modules

40
推荐指数
2
解决办法
8035
查看次数

33
推荐指数
3
解决办法
1万
查看次数

你在哪里存储你的Rails应用程序的版本号?

在对rails应用程序进行版本控制时,我们使用了精彩的语义版本控制范例.我遇到的一个问题是,最好存储这个号码?我已经看到了它在存储/lib,environment.rb等等.

只是想知道人们对最佳实践的看法?

versioning ruby-on-rails semantic-versioning

29
推荐指数
5
解决办法
8390
查看次数

如何找出实际安装的凉亭包的版本?

通常,bower.json文件指定一些依赖关系,但通常表达这些依赖关系,以便它们允许使用一系列版本的bower包(例如>=1.0,这意味着任何高于1.0的版本).

我有一个自动化流程,需要立即找到该系统上实际安装的bower包的版本.

如何以编程方式(仅版本本身)找到它,理想情况下使用标准的Unix命令行工具/ bower命令?

bower info <thepackagename>没有表明这一点-它显示了什么是当前可从凉亭库信息(例如,即使我做bower info apackageIdonthaveinstalled它仍然会显示一个包含版本号的有效的JSON结构).

cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version适用于某些软件包(假设json安装了npm软件包),但并非全部(例如jquery 2.2.0的bower软件包不包含bower.json).

versioning json semantic-versioning bower

28
推荐指数
3
解决办法
2万
查看次数

在Bower中指定版本号

在编写bower.json时,您可以在依赖项中指定版本号.有时我看到人们写作

{
...
    "devDependencies" : {
        "grunt" : "~0.3.13",
    }
}
Run Code Online (Sandbox Code Playgroud)

究竟是什么意思?为什么不写> = 0.3.13?

这是某种最佳做法吗?

javascript npm semantic-versioning bower

27
推荐指数
1
解决办法
1万
查看次数

"公共API"在语义版本控制中意味着什么?

我正在学习如何使用http://semver.org/中名为"语义版本控制"的规则来分配和增加版本号.

在其所有规则中,第一个规则说:

使用语义版本控制的软件必须声明一个公共API.此API可以在代码本身中声明,也可以严格存在于文档中.无论如何,它应该是精确和全面的"

我对"公共API"感到困惑.它指的是什么?

semantic-versioning

26
推荐指数
2
解决办法
2578
查看次数

在1.0.0之前对npm软件包进行版本控制的惯例是什么?

我正在阅读版本控制npm,显然它提供了一个很好的方便命令来破坏你的软件包版本.

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]
Run Code Online (Sandbox Code Playgroud)

抢鲜

让我们说你的包从版本开始 0.0.0

npm version prerelease => 0.0.1-0

npm version prerelease => 0.0.1-1

基本上只是破折号之后的数字

的prepatch

0.0.0使用pre [major | minor | patch]开始代替......

npm version prepatch => 0.0.1-0

npm version preminor => 0.1.0-0

npm version premajor => 1.0.0-0

补丁

0.0.0使用补丁开始......

npm version patch => 0.0.1

npm version patch => 0.0.2

我理解了碰撞主要版本和补丁版本的规则,但之前版本化事物的标准惯例是1.0.0什么?

node.js npm semantic-versioning

26
推荐指数
1
解决办法
8530
查看次数

使用 NPM 将包更新到主要版本

Node.js项目中,我不清楚将包升级到主要版本的正确工作流程是什么。

假设我正在安装stylelintnpm install --save stylelint默认情况下,在我的package.json 中放入字符串"stylelint": "^8.4.1"这意味着如果我想用 更新它npm update,我将只获得次要版本和补丁版本 (8.4. 2 可以,8.5.0 可以,9.0.0 不行)。

如果我检查npm outdated并发现我可以更新到 9.0.0,则npm update由于上述限制而无法正常工作。

那么,如果我想升级,我应该怎么做?

我是否需要手动将package.json修改为 stylelint 版本 ^9.0.0,删除node_modules目录并重新运行npm install

或者我可能只需要删除^角色才能让它npm update完成它的工作?

要采用的常见/最佳实践是什么?

谢谢

updates node.js npm semantic-versioning

26
推荐指数
4
解决办法
2万
查看次数