首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术文档丨 OpenSCA技术原理之npm依赖解析

dependencies字段包含项目使用所有直接和间接依赖,而且记录了组件间依赖关系。 例如: "b": { "version": "1.2.1" }, 代表组件b版本号为1.2.1。..."a": { "version": "2.1.5", "requires": { "b": "^1.1.9" } }, 代表项目依赖2.1.5版本组件a,该组件依赖版本约束为^1.1.9...注: ^1.1.9代表版本号需要>=1.1.9且<2.0.0; ^1.2.0代表版本号需要>=1.2.0且<2.0.0; 更多约束格式请参阅semver官网 由此可以构建出当前项目的依赖结构: 图片 实线代表直接依赖...例如: "devDependencies": { "a": "^2.0.0" } 代表项目开发过程依赖版本约束为^2.0.0组件a。...对于本例来说,组件a约束为^2.0.0,要求版本号>=2.0.0且<3.0.0,所以选择2.1.5版本。因此组件依赖结构就变成了: 图片 按照这种方式层级解析便可获取整个项目的依赖信息。

60430

Python - poetry(5)依赖规范

啥是依赖规范 可以以各种形式指定项目的依赖项,取决于依赖项类型以及安装项目可能需要可选约束 版本约束 ^ 约束 编写规范 允许版本范围 ^1.2.3 >=1.2.3 <2.0.0 ^1.2 >=1.2.0...<1.0.0 当最左边数字为非 0,则以左一数字为主版本号,比如:^2.13.0,可以取 2.14.0,但不能取 3.0.0,因为主版本号已经变了 如果左一数字为 0,则以左二数字为主版本号,比如...<1.3.0 ~1 >=1.0.0 <2.0.0 和上面的 ^ 差不多,不过这个是次要版本,以第二个数字为基准 * 约束 有点像万能匹配符,写在哪里都可以 编写规范 允许版本范围 * >=0.0.0...1.* >=1.0.0 <2.0.0 1.2.* >=1.2.0 <1.3.0 比较符 就常规>、< 符号了 >= 1.2.0 > 1 < 2 !...true python = "^3.6" markers = "platform_python_implementation == 'CPython'" 依赖项约束完全一样,只不过变成一行一个约束属性

31630
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter.yaml文件内容详解

自Dart2.0开始需要添加environment字段,该字段会声明当前项目是基于Dart SDK哪一个版本进行编译,也就是说,该字段约束了使用dart版本。...比如: environment: sdk: ">=2.0.0 <3.0.0" # Dart版本约束 约束了当前项目仅适用于2.0~3.0Dart SDK版本编译。...五、dependencies dependencies是项目依赖其他插件。 在这个标签列出了保证该项目正常工作所需每一个软件包及其版本。...<2.0.0 插件最低支持1.1.0,但不得超过2.0.0 <=1.2.3 插件最高支持到1.2.3 (6)指定Flutter SDK 在dependencies,还可以指定flutterSDK及其版本...: dependencies: flutter: sdk: flutter version: ">=2.0.0-dev.68.0 <3.0.0" 如果不指定version字段的话,会默认获取

2.3K30

gitbook 入门教程之解决windows热加载失败问题

既然命令行无法找到目标文件,那就请专业搜索工具全系统查找这两个文件吧,这里使用是 Everything 搜索工具. ? 然并卵,依然没有找到目标文件. 毕竟不是柯南,没有发现真相 ?.... $ gitbook --version CLI version: 2.3.2 GitBook version: 3.2.3 升级到最新版 gitbook ls 是列出当前已安装版本,而 gitbook..., 2.0.0-beta.5, 2.0.0-beta.4, 2.0.0-beta.3, 2.0.0-beta.2, 2.0.0-beta.1, 2.0.0-alpha.9, 2.0.0-alpha.8,...在真相只有一个章节已经探讨过,当时得出结论是 gitbook 是删除 _book 文件夹再新建 _book 文件夹时发生了意外....在实验,gitbook serve --log=debug 启动本地服务器后,如果本地文件发生修改会重启失败!

2.7K30

规范升级 NPM 包

这些规范具体包含内容大家可以参考[语义化版本 2.0.0] https://semver.org/lang/zh-CN/ 本文只针对我们开发容易忽略地方做一些详述。...~2.3 同理 ~2 >= 2.0.0 && < 3.0.0 X 为 2 *、X、x,空:表示可以匹配任何版本 "2.3.X"、"2.3.x"、"2.3*"、"2.3" >= 2.3.0 && < 2.4.0...Z 可以为任意值 "2.X"、"2.x"、"2.*"、"2" >= 2.0.0 && < 3.0.0 Y、Z 为任意值 *、X、x,空 任意版本 任意版本指的是最新正式版 关于 npm 版本格式还有许多...首先需要升级 A 包版本号,此处介绍两种升级方式 方式一:简单粗暴,手动修改 package.json version: 这种方式需要我们自己手动执行 git commit -am 'XXXX...// 版本号会成为 3.0.0-0,即 3.0.0 预发版本 npm version preminor // 版本号为成为 2.4.0-0,即 2.4.0 预发版本 npm version prepatch

65731

版本号命名指南

从上可以看出,不同软件版本号风格各异,随着系统规模越大,依赖软件越多,如果这些软件没有遵循一套规范命名风格,容易造成 Dependency Hell。...所以当我们发布版本时,版本号命名需要遵循某种规则,其中 Semantic Versioning 2.0.0 定义了一套简单规则及条件来约束版本号配置和增长。...本文根据 Semantic Versionning 2.0.0 和 Semantic Versioning 3.0.0 选择性整理出版本号命名规则指南。...版本号排序规则为依次比较主版本号、次版本号和修订号数值,如 1.0.0 < 1.0.1 < 1.1.1 < 2.0.0;对于先行版本号和开发版本号,有:1.0.0.a100 < 1.0.0,2.1.0...一些修饰词 alpha:内部版本 beta:测试版 demo:演示版 enhance:增强版 free:自由版 full version:完整版,即正式版 lts:长期维护版本 release:发行版

2.2K10

Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?

因此,动态版本适合用在强调使用依赖项最新版本场景,项目会更加积极地拥抱依赖项最新版本,当仓库存在依赖项最新版本时,动态版本直接解析为依赖项最新版本(还需要满足缓存超时前提)。...其实,如果我们结合实践暴露问题,Gradle 依赖冲突可以细分为 2 类问题: Version Conflict 版本冲突: 在项目依赖关系图中,某个依赖项存在多个版本; Implementation...如果不存在满足约束规则依赖项版本,则会抛出构建失败错误。...:retrofit FAILED // 无法解析(单独编译缺少约束来源) \--- com.squareup.okhttp3:okhttp:3.10.0 \--- com.squareup.okio...如果不存在满足约束规则依赖项版本,则会抛出构建失败错误; 3、虽然 Gradle 在平台层提供了一套依赖解析决议机制,但 Gradle 版本决议默认规则是选择最高版本,最高版本不一定与项目兼容,所以需要开发者使用相关版本决议规则

44930

技术文档 | OpenSCA技术原理之composer依赖解析

今天主要介绍基于composer包管理器组件成分解析原理。 composer介绍 composer是PHP依赖管理工具。...解析算法 composer.lock composer.lock文件为自动生成文件,可以准确定位到PHP项目使用依赖及版本,所以优先解析composer.lock文件。...composer.json为开发者管理依赖管理文件,在未找到composer.lock文件时将解析该文件。...例如: "a": "^1.1.0"代表项目依赖版本约束为^1.1.0组件a。 "b": "^1.2.0"代表项目依赖版本约束为^1.2.0组件b。...对于本例来说,组件a约束为^1.1.0,要求版本号>=1.1.0且<2.0.0,所以选择1.1.0版本。 因此组件依赖结构就变成了: 图片 按照这种方式层级解析便可获取整个项目的依赖信息。

1.4K60
领券