~version :以 ~1.0.0 来举例,表示安装1.0.x的最新版本(不低于1.0.0)。但是大版本号和次要版本号不能变。...>、>=、<、<= :可以像数组比较一样,使用比较符来限定版本范围。...tag :一个指定 tag 对应的版本。 * 或 "" (空字符串):任意版本。 latest :最新版本。 http://... 或 file://......如果使用 -f / --force 或 -y / --yes ,npm 会使用默认值为你创建 package.json 文件,不再询问任何问题。...当使用上述任何选项将依赖保存到package.json时,有两个额外的可选标志: -E, --save-exact :会在 package.json 文件指定安装模块的确切版本。
package.json在npm中用的比较多,我的github博客就是基于npm管理搭建的,在项目根目录下有package.json这个文件,如图 ?...npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。 下面是一个最简单的package.json文件,只定义两项元数据:项目名称和项目版本。...package.json配置说明 下面就以我的博客项目的package.json文件的配置作一个简单的说明,分为必须字段和可选字段 { "name": "wblearn-blog", "...这个字段的默认值是模块根目录下面的index.js。 4.Config object Config对象中的值在Scripts的整个周期中皆可用,专门用于给Scripts提供配置参数。...5.Keywords 字符串数组。人们使用 npm search 搜索时发现你的项目 6.Description 必须是字符串。npm search的时候会用到。
上一篇文章提到了npm的接入 travis 实现自动发布 npm 包的方法,本文主要讲述 Go 项目的使用,主要分为执行单元测试和 build 打包发步到 github release。...run test的命令执行测试,但是 Go 是没有npm和package.json这两个东西,这时候就需要编写Makefile来实现了(可以把Makefile看作功能类型于package.json的东西...,只是使用make xxx来执行),Makefile编写可以参考。...以blog-sync为例子,这里我是需要打包全平台的可行文件,于是Makefile如下 GOCMD=go GOBUILD=$(GOCMD) build BINARY_NAME=bin NAME=blog-sync...tags: true 4、发布 每次打tag推送到仓库,就会触发自动发布可执行文件到github release git tag 1.0.0 git push --tags 5、可以看到
package.json 通常我们去看一个大型项目都是从package.json文件开始看起的,这里面包含了项目的版本、入口、脚本、依赖等关键信息。...build/bin/version.js 根据package.json中的version,生成examples/versions.json,对应就是完整的版本列表 build:theme 处理样式相关。...构建流程梳理 构建指令(Makefile) 平时我们都习惯将项目常用的脚本放在package.json中的scripts中。.../usr/bin/env sh # 切换至dev分支 git checkout dev # 检测本地和暂存区是否还有未提交的文件 if test -n "$(git status --porcelain...发布流程: 执行测试用例 打包构建 更新版本号 npm 包发布 打 tag 自动化部署 维护 发布后需要日常维护之前老版本,一般需要注意一下几点: issue(bug 修复) pull request(
内核中有两个配置宏 CONFIG_LOCALVERSION 和 CONFIG_LOCALVERSION_AUTO 配置了系统内核版本号和后缀的信息. 2.2 Makefile 中读取和设置版本号 我们检索与这两个宏相关的信息...# 读取 git 仓库的版本信息 # 如果 --short 被设置则直接打印 + 号 # 否则git读取版本号信息, # 如果git tag号存在git describe...如果我们在版本库中 git tag -a -m "v0.1" v0.1 然后, 我们在执行 git describe --exact-match 这一句, 发现输出的是我们的 tag 标识....结论, linux 对版本的管理相当严格,这也就让我们在进行代码管理中必须严格要求自己,比如发版本前,先检查是否还有修改为上传的文件,然后要在git版本库中打一个tag。...如果代码属于 git 管理 打了 tag, 则会添加tag相关字符 如果 tag 只是简单的标记, 比如 4.14-rc8 则跳过, 因为这些信息已经从前面 makefile 中获取到了 没有打 tag
)的工具,“semver”其实就是这两个单词的缩写。...应用:优化发“预发布版本”的流程 6.1 问题描述 “预发布版本”是我们发正式版本之前的一个验证版本,目前我们公司前端项目发“预发布版本”的时候要通过如下图所示的流程,这里面有很多操作git的命令,受阅读源码启发...其中生成tag的时候需要根据tag命名规范来生成。下图中 12 为固定值 ,20代表年份,30代表是一年中的第几周,01代表第几次发版。...6.2 解决方案 所以我需要写的脚本中就需要做这几件事情: (1)要获取当前年份,当前第几周:这两个值用JS基本代码就ok, (2)需要和开发者交互获取第几次发版和服务名:可以使用 release.js...` // 本地打 Tag,生成版本 await run('git', ['tag', tagName, '-m', comment]) // 推送 Tag 到远程代码库,触发构建
默认值 npm会根据包内容设置一些默认值。...name 在package.json中最重要的就是name和version字段。他们都是必须的,如果没有就无法install。name和version一起组成的标识在假设中是唯一的。...参见 npm-config(7) 和 npm-scripts(7)。 dependencies 依赖是给一组包名指定版本范围的一个hash。这个版本范围是一个由一个或多个空格分隔的字符串。...commit-ish git+https://user@hostname/project/blah.git#commit-ish commit-ish是可以被git checkout的任何tag、sha...可以只和tea的2.x版本一起初始化。
对于写代码而言,也是需要有一套完善的工作流(工具和流程)。...再聊聊 git工作流 ,现在管理代码几乎都是使用 git 版本管理工具,了解它是必要的,像一些基本的推拉合,解决冲突这些我们就不聊了,主要聊下团队协作方面使用 git 的工具及使用方法。...= 4 # Tab indentation (no size specified) 设置某中文件的缩进风格为tab Makefile未指明 [Makefile] indent_style = tab...匹配除/之外的任意字符串 ** 匹配任意字符串 ?...默认是indent_size end_of_line 设置换行符,值为lf、cr和crlf charset 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be
VSCode 拓展插件推荐 插件列表 Auto Close Tag 自动闭合HTML标签 Auto Rename Tag 修改HTML标签时,自动修改匹配的标签 Bookmarks 添加行书签 Can...Highlight 颜色值在代码中高亮显示 Color Picker 拾色器 Document This 注释文档生成 EditorConfig for VS Code EditorConfig 插件...提示代码段 ftp-sync 同步文件到ftp Git Blame 在状态栏显示当前行的Git信息 Git History(git log) 查看git log GitLens 显示文件最近的commit...(支持chai、should、jasmine) TODO Parser Todo管理 Version Lens package.json文件显示模块当前版本和最新版本 vetur 目前比较好的Vue语法高亮...View Node Package 快速打开选中模块的主页和代码仓库 vscode-icons 文件图标,方便定位文件 VSCode Great Icons 文件图标拓展 VueHelper Vue2
当执行该命令时,就会根据 package.json 文件中的配置信息来自动下载所需的模块,也就是配置项目所需的运行和开发环境。...package.json 常见配置项如下: 一、必须属性 package.json 中最重要的两个字段就是 name 和 version,它们都是必须的,如果没有,就无法正常执行 npm install...npm 规定 package.json 文件是由名称和版本号作为唯一标识符的。 1. name name 很容易理解,就是项目的名称,它是一个字符串。...需要注意,这个字段数组中的值必须是在 dependencies, devDependencies 两个里面声明过的包才行。...如果不指定该字段,默认是项目根目录下的 index.js。如果没找到,就会报错。 该字段的值是一个字符串: "main": ".
YAML); simple-git[6] 用于在任何 node.js 应用程序中运行 git 命令的轻量级接口,上述的 lastUpdated 字段便是通过 git log -1 --format=%.../ 比较新旧版本、如果一致就退出进程 if (oldVersion === version) { console.log('canceled') process.exit() } // 类型声明构建...' }) // 打tag execSync(`git tag -a v${version} -m "v${version}"`, { stdio: 'inherit' }) release 流程非常清晰...: 然后通过以下两个包的处理 filesize[16] 用于显示可读的文件体积,并且支持国际化、四舍五入等配置; markdownTable[17] 用于生成 markdown 格式的表格字符串; 最终将...md 字符串写入 export-size.md。
工程初始化 为了便于后续的演示,先在工程根目录下新建 packages 目录,并且在 packages 目录下创建 pkg1 和 pkg2 两个工程,分别进到 pkg1 和 pkg2 两个目录下,执行...npm init 命令,初始化两个工程,package.json 中的 name 字段分别叫做 @qftjs/menorepo1 和 @qftjs/monorepo2(PS:@qftjs是提前在npm上创建好的组织...pnpm 推荐了两个开源的版本控制工具: changesets rush 这里我采用了 changesets 来做依赖包的管理。...这里还有个细节,如果我不想直接发 release 版本,而是想先发一个带 tag 的 prerelease版本呢(比如beta或者rc版本)?...--tag beta 注意发包的时候不要忘记加上 --tag 参数。
annotated tag 的包(即 lerna publish from-git) 发布在最近 commit 中修改了 package.json 中的 version (且该 version 在 registry...,这一步的事件注册以及执行方式都和 lerna version 源码解析时比较类似,主要过程可以分为三个步骤: 初始化 npm config 参数 根据不同的发包情况执行不同的方法 处理上一步返回的结果...(); } return true; }); } initialize 前面有介绍主要分为三个步骤来执行,因此 1、3 两个步骤根据注释来理解过程还是比较清晰的,...会把 working tree 的版本修改重置 // lerna 每次发包都会把更新的 package.json 的 version 的修改提交到 git 上去 // 如果发测试包...这里的 gitHead 是一个 hash 值,用户可以通过 --git-head 来自行指定,如果不指定的话,lerna 这里会默认帮你取当前 commit 的 hash 值,即通过 git rev-parse
Android.bp 属性值,这两个值可能会重复)*/ name: "gzip", // srcs属性以字符串列表的形式指定用于构建模块的源文件 // 可以使用模块引用语法 "...运算符 可以使用+运算符附加字符串、字符串列表和映射。 可以使用+运算符对整数求和。附加映射会生成两个映射中键的并集,并附加在两个映射中都存在的所有键的值 ---- 2.4.2.7....如果编译配置包含两个版本,则预编译模块定义中的prefer标记值会指示哪个版本具有优先级。...以下示例Makefile来自于device/google/marlin/aosp_marlin.mk。...启用语言区域过滤器 如需启用过滤器,请设置ro.localization.locale_filter系统属性字符串值 通过在出厂校准期间使用oem/oem.prop设置过滤器属性值和默认语言,无需将过滤器烘焙
@4.1.0 e) 一个格式为 @ 的字符串,在 npm 源上该指向某 得到 @,后者满足条件 (d) webpack...@latest f) 一个格式为 的字符串,默认添加 latest 标签所得到的 @latest 满足条件 (e) webpack g) 一个 git url, 该 url...| #semver:] git 路径后可以使用 # 指定特定的 git branch/commit/tag, 也可以 #semver: 指定特定的 semver range....如果包是一个 git 仓库,npm version 还会自动创建一条注释为更新后版本号的 git commit 和名为该版本号的 tag 对于包的引用者来说,我们需要在 dependencies 中使用...update,package.json 中的版本号也会随之更改为 ^1.15.0 由此可见 npm 5.1 使得 package.json 和 package-lock.json 中所保存的版本号更加统一
相对于传统的版本控制系统而言,Git更为强大和灵活,其各种命令和命令参数也非常多,如果不了解Git的内部原理,要把Git使用得顺手的话非常困难。...该命令会在工作目录下生成一个.git目录,该目录将用于保存工作区中所有的文件历史的历史版本,提交记录,branch,tag等信息。...Git为对象生成一个文件,并根据文件信息生成一个 SHA-1 哈希值作为文件内容的校验和,创建以该校验和前两个字符为名称的子目录,并以 (校验和) 剩下 38 个字符为文件命名 ,将该文件保存至子目录下...Makefile是一个新建的blob对象,src和file1.txt则指向了新版本的对象。...总结 Git围绕三种Object来实现了版本控制以及Branch,Tag等机制。
git-log:显示提交日志 git-checkout或者git-branch:用于切换和创建分支 git-add:用于将修改内容加入到index文件中 git-diff和git-status:用于显示开发者所做的修改...git-reset和git-checkout:用于撤销某些修改 git-merge:用于合并两个分支 git-rebase:用于维护topic分支(此处我也不太懂,等完成git学习后转过头来会关注此问题...git支持 下面的代码切换到master分支,后退Makefile两个版本,错误的删除了 hello.c , 然后再从index恢复它....-a表示远程分支和本地分支都要 git branch [] 创建一个新的分支,如果后面有star-point就从这个版本创建分支,否则就从当前版本创建分支.../linux-2.6 my2.6 $ cd my2.6 $ git branch my2.6.14 v2.6.14 //前面一个参数是branch名,后面是指定的tag名,从这个版本创建分支 $ git
update-version auto-vers git tag 支持 不支持 支持 自动更新 不支持 支持 支持 提示更新 不支持 不支持 支持 手动与auto-vers比较 下面是我们需要手动改...commit的信息来自动推荐合适的版本 使用 Node 和 Cli两种引入方式。...提示和Git组合模式 使用这个选项后,在你选择一个版本后,会自动帮你提交一个commit,并且打上一个tag。...auto-vers-t-g这个命令适合于你单独发布一个版本,可以一键式的帮助你从修改 package.json -> git commit -> git tag -> git push origin [...高级的方式 git-hooks 如果你没有注册 pre-commit和 post-commit,可以直接移动进你的.git/hooks目录下 mv githook-*/* .git/hooks/ 如果你本地存在
领取专属 10元无门槛券
手把手带您无忧上云