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

我应该在package.json中的一个版本上保留所有的子包吗?

在package.json中,可以使用版本范围来指定依赖包的版本。版本范围可以是精确的版本号,也可以是通配符、比较运算符或者波浪号等。

对于是否保留所有子包的版本,取决于具体的项目需求和情况。以下是一些常见的情况和建议:

  1. 如果你的项目中的子包都是独立的,没有相互依赖关系,可以在package.json中保留所有子包的版本。这样做可以确保每个子包都使用指定的版本,避免不同子包之间的版本冲突。
  2. 如果你的项目中的子包存在相互依赖关系,建议使用版本范围来指定依赖包的版本。这样可以允许子包的版本在一定范围内变化,以适应不同子包的依赖关系。同时,可以使用npm的版本管理工具来自动解决依赖关系,确保子包之间的版本兼容性。
  3. 如果你的项目中的子包需要保持固定的版本,可以使用精确的版本号来指定依赖包的版本。这样可以确保每个子包都使用指定的版本,避免版本变化带来的不确定性。

总之,在package.json中保留所有子包的版本与否,需要根据具体情况进行权衡和决策。在实际开发中,可以根据项目需求和团队约定来确定合适的做法。

腾讯云相关产品和产品介绍链接地址:

  • 云开发(https://cloud.tencent.com/product/tcb)
  • 云服务器(https://cloud.tencent.com/product/cvm)
  • 云原生应用引擎(https://cloud.tencent.com/product/tke)
  • 云数据库 MySQL 版(https://cloud.tencent.com/product/cdb)
  • 云存储(https://cloud.tencent.com/product/cos)
  • 人工智能(https://cloud.tencent.com/product/ai)
  • 物联网(https://cloud.tencent.com/product/iotexplorer)
  • 移动开发(https://cloud.tencent.com/product/mobility)
  • 区块链(https://cloud.tencent.com/product/baas)
  • 元宇宙(https://cloud.tencent.com/product/vr)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

npm 依赖管理中被忽略那些细节

package.json 前后顺序对于安装时有什么影响?这些问题平时大家可能没有注意过,今天我们就来一起研究一下吧。 A 和 B 同时依赖 C,这个会被安装在哪里呢?.../node_modules 这层目录包含有我们 package.json 文件中所有的依赖,而这些依赖依赖都安装在了自己 node_modules ,形成类似于下面的依赖树: 这样目录有较为明显好处...比如:A 包在团队一个人安装时候是 1.0.5 版本package.json 配置项为 A: '^1.0.5';团队第二个人把代码拉下来时候,A 版本已经升级成了 1.0.8,根据...版本 resolved :具体安装来源 integrity : hash 值,验证已安装软件是否被改动过、是否已失效 requires :对应依赖依赖,与依赖 package.json... dependencies 依赖项相同 dependencies :结构和外层 dependencies 结构相同,存储安装在依赖 node_modules 依赖 需要注意是,并不是所有的依赖都有

2.4K10

现代 JavaScript 库打包指南

举个例子,如果你使用 TypeScript,你可以创建两个版本代码: 通过在 tsconfig.json 设置 "target"="esnext",生成一个用现代 JavaScript esm...理想情况下,库每次版本变更都应该在 changelog 中进行相应更新。...当你更新库代码时,你可以更新 version 字段并发布以允许开发者获取该新代码。 推荐使用 semver 版本控制策略,但要注意是有些库选择 calver 或使用他们自己特有的版本控制策略。...无论你选择使用哪种策略,都应该记录下来,以便开发者了解你库是如何进行版本控制。 你还应该在 changelog 记录你更改。.../package.json": "./package.json" } } 让我们深入了解这些字段含义以及选择这个例子原因: "."

2.3K20

现代 JavaScript 库打包指南

举个例子,如果你使用 TypeScript,你可以创建两个版本代码: 通过在 tsconfig.json 设置 "target"="esnext",生成一个用现代 JavaScript esm...理想情况下,库每次版本变更都应该在 changelog 中进行相应更新。...当你更新库代码时,你可以更新 version 字段并发布以允许开发者获取该新代码。 推荐使用 semver 版本控制策略,但要注意是有些库选择 calver 或使用他们自己特有的版本控制策略。...无论你选择使用哪种策略,都应该记录下来,以便开发者了解你库是如何进行版本控制。 你还应该在 changelog 记录你更改。.../package.json": "./package.json" } } 让我们深入了解这些字段含义以及选择这个例子原因: "."

85010

如何规范地发布一个现代化 NPM

举个例子,如果你使用 TypeScript,你可以创建两个版本代码: 通过在 tsconfig.json 设置 "target"="esnext",生成一个用现代 JavaScript esm...理想情况下,库每次版本变更都应该在 changelog 中进行相应更新。...当你更新库代码时,你可以更新 version 字段并发布以允许开发者获取该新代码。 推荐使用 semver 版本控制策略,但要注意是有些库选择 calver 或使用他们自己特有的版本控制策略。...无论你选择使用哪种策略,都应该记录下来,以便开发者了解你库是如何进行版本控制。 你还应该在 changelog 记录你更改。.../package.json": "./package.json" } } 让我们深入了解这些字段含义以及选择这个例子原因: "."

2K20

开发遇到过 NPM 疑惑解答

peerDependencies 我们在一些node_modulespackage.json可以看到peerDependencies,它用来表明如果你想要使用此插件,此插件要求宿主环境安装。...bundledDependencies 当我们想在本地保留一个npm完整或者想生成一个压缩文件来获取npm时候,会用到bundledDependencies。...requires: 对应依赖依赖,与依赖package.jsondependencies依赖项相同 dependencies:结构与外层结构相同,存在于自己node_modules依赖...(不是所有的都有,当依赖依赖版本与根目录node_modules依赖冲突时,才会有) 通过分析上面的package-lock.json文件,也许会有一个问题。...为什么有的可以被安装在根目录node_modules有的却只能安装在自己包下面的node_modules?这就涉及到npm安装机制。

1.4K10

npm 全面介绍

一个很重要作用就是:将开发者从繁琐包管理工作(版本、依赖等)解放出来,更加专注于功能开发。 如何使用 NPM 安装 npm 不需要单独安装。...使用方法是在目录(package.json 所在目录)运行 npm link 命令。如果我们要开发一个,利用这种方法可以非常方便地在不同工程间进行测试。...创建 是在模块基础更深一步抽象,Node.js 类似于 C/C++ 函数库或者 Java、.Net 类库。它将某个独立功能封装起来,用于发布、更新、依赖管理和版本控制。...package.json 必须在顶层目录下; 。二进制文件应该在 bin 目录下; 。JavaScript 代码应该在 lib 目录下; 。文档应该在 doc 目录下; 。...dependencies: 依赖,一个关联数组,由名称和版本号组成。 发布 通过使用 npm init 可以根据交互式回答产生一个符合标准 package.json

1.1K30

【转载】package-lock.json作用

大多数情况这种向新兼容依赖下载最新库时候都没有问题,可是因为npm是开源世界,各库版本语义可能并不相同,有的开发者并不遵守严格这一原则:相同大版本一个,其接口符合兼容要求。...解决:   因此npm最新版本就开始提供自动生成package-lock.json功能,为是让开发者知道只要你保存了源文件,到一个机器、或者新下载源,只要按照这个package-lock.json...标示具体版本下载依赖库,就能确保所有库与你上次安装完全一样。...例如: 假如我已经安装了Verdaccio 4.1.4这个版本,从git更新了package.json和package-lock.json,npm install能覆盖掉node_modules里面的依赖...其实也有这个疑问,所以做了测试,在直接更新package.json和package-loc.json这两个文件后,npm install是可以直接覆盖掉原先版本,所以在协作开发时,这两个文件如果有更新

3.3K50

现代 JavaScript 库打包指南

举个例子,如果你使用 TypeScript,你可以创建两个版本代码: 通过在 tsconfig.json 设置 "target"="esnext",生成一个用现代 JavaScript esm...理想情况下,库每次版本变更都应该在 changelog 中进行相应更新。...当你更新库代码时,你可以更新 version 字段并发布以允许开发者获取该新代码。 推荐使用 semver 版本控制策略,但要注意是有些库选择 calver 或使用他们自己特有的版本控制策略。...无论你选择使用哪种策略,都应该记录下来,以便开发者了解你库是如何进行版本控制。 你还应该在 changelog 记录你更改。.../package.json": "./package.json" } } 让我们深入了解这些字段含义以及选择这个例子原因: "."

87430

NPM 学习笔记整理

使用方法是在目录(package.json 所在目录)运行 npm link 命令。如果我们要开发一个,利用这种方法可以非常方便地在不同工程间进行测试。...创建 是在模块基础更深一步抽象,Node 类似于 C/C++ 函数库或者 Java 、.Net 类库。它将某个独立功能封装起来,用于发布、更新、依赖管理和版本控制。...严格符合 CommonJS 规范应该具备以下特征: package.json 必须在顶层目录下; 二进制文件应该在 bin 目录下; JavaScript 代码应该在 lib 目录下; 文档应该在...我们也可以把文件夹封装为一个模块,即所谓通常是一些模块集合,在模块基础提供了更高层抽象,相当于提供了一些固定接口函数库。...dependencies: 依赖,一个关联数组,由名称和版本号组成。 发布 通过使用 npm init 可以根据交互式回答产生一个符合标准 package.json

64600

用 Docker 打包 Node.js 程序

你听到过这样对话? 程序猿1:在计算机上不能用 ? 程序猿2:在这里好好啊 ? 这种对话很常见。这一般是由于工作环境设置或配置不同而引起。...❞ 首先从 github 克隆项目[3] 按照自述文件说明[4]设置项目。 如果你设置完成了项目并且运行了服务器,则应该在浏览器得到以下响应 ?...npm install 现在把项目中有的文件和文件夹复制到 docker /app目录。...在上面的命令,我们告诉 docker 运行在端口 5000 构建程序,即使我们程序运行在端口 3000 。...你已经用 docker 创建了你一个部署? 。 总结 在快速迭代系统, docker 是很重要。因此我们需要学习它。 我们使用大多数代码都在 docker hub[5] 找到。

2.9K10

Yarn 2.0介绍

如果你在项目中使用是Lerna,当你发布一个版本时候,你要么所有的都要发布新版本,要么你得自己手动来管理其他版本发布。...它具体做法是让开发者将本地依赖也提交到远端git仓库,看到这里你可能会想:“不就是将nodemodules也提交?这个做法很蠢吧!”。...你之前可能会遇到这样一个问题:你在package.json定义script命令在OSX系统可以运行,可是在windows电脑却会报错。...出现这个问题原因是你在package.json定义script最终是通过Yarn创建一个进程来执行,而进程shell环境在Windows和OSX环境是不一样(例如文件路径写法就不一样)...Yarn未来计划 v1最后一个版本v1.22已经发布,作者从此不会再在v1代码添加任何新功能了。Yarn所有的新功能都只会在v2版本代码库开发。

74720

【npm】利用npm安装删除发布更新撤销发布

chmod代表change mode更改读写模式,对该目录授予最高权限,任何人可读可写,这是很危险 本地安装时候,将依赖信息写入package.json 注意一个问题,在团队协作一个常见情景是他人从...就是你package.jsondependencies和devDepencies。所以,在本地安装同时,将依赖信息(要求名称和版本)写入package.json是很重要!...下对应信息 npm uninstall 模块 --save-dev 删除模块,同时删除模块留在package.jsondevDependencies下对应信息 利用npm 发布 发布之前你首先要有一个...(翻译:你没有发布react权限,请问你是以react所有者身份登陆?)...: 事实npm更新和发布命令是一样,都是npm publish,不同之处在于,你需要修改版本 所以步骤是: 1.修改版本package.jsonversion字段) 2.npm

4.7K80

npm 淘宝镜像使用

注意一个问题,在团队协作一个常见情景是他人从githubclone你项目,然后通过npm install安装必要依赖,(刚从githubclone下来是没有node_modules,需要安装...所以,在本地安装同时,将依赖信息(要求名称和版本)写入package.json是很重要!...例如我尝试把名改成’react’显然已有的: 然后发包时候就会… (翻译:你没有发布react权限,请问你是以react所有者身份登陆...(即不能名称相同,版本相同,因为这两者构成唯一标识已经被“占用”了) 例如我在撤销后尝试再发布同一名称+同一版本: 报错,并建议修改版本...: 事实npm更新和发布命令是一样,都是npm publish,不同之处在于,你需要修改版本 所以步骤是: 1.修改版本

1.3K40

NPM命令实用使用技巧总结

'2.5.15', '2.5.16', '2.5.17-beta.0', '2.5.17' ] 安装指定版本安装 如果你想安装一个不是最新版本安装,你可以指定某个版本来安装,如:...文件夹及package.json对应。...当然,你也可以用rm,un或者r来达到相同效果: npm rm vue 如果由于某些原因,你只想从node_modules文件夹删除安装,但是想在package.json保留其依赖项,那么你可以使用...创建自己NPM可用变量 你可以在package.json添加新 key 来创建自己npm变量,可以是任何 key ,更喜欢将所有的npm变量都放在一个config,这样看起来比较清晰: "config...默认情况下,npm会重命名你变量,给其加上前缀npm_package,并将其结构保留package.json文件,即变为config_build_folder。

98520

你真的了解package.json

明知不可为而为之 大家好,是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享Coder。 前言 最近不是发了几篇关于用Rust构建前端脚手架文章?...每个包管理器都需要一种方式来跟踪在当前项目中应该使用哪些版本哪些软件。通常,会创建一个文件,将这些依赖关系映射到它们对应版本。...当运行 JS 包管理器 install 命令时,它将安装在 package.json 文件中提到软件相应版本。...案例分析 还记得f_clinpm版本。...当某个 A 声明了它 peerDependencies,它实际是在声明:“期望运行时环境中会有某个 B 特定版本,但我不会直接将 B 添加为依赖项,而是期望它由运行时环境或其他上层提供

7710

pnpm monorepo实践

很显然这样在开发以及代码仓库协同上肯定有弊端,而 monorepo 正是解决这种问题,将所有的项目在一个代码仓库,即单一代码库(monorepos)。...项目结构​ pnpm 内置了对单一存储库(也称为多存储库、多项目存储库或单体存储库)支持, 你可以创建一个 workspace 以将多个项目合并到一个仓库。...- play 像一开始举例代码仓库项目结构如下 monorepo-demo ├── package.json ├── packages │ ├── components...*表示默认同步最新版本,省去每次都要同步最新版本问题。...可以说当使用 monorepo 作为项目管理时,每个模块就相当于按照一个 npm 发布方式创建,而不是像 src/utils 那么随便了,而开源项目大部分都是要作为 npm 方式发布,使用 monorepo

1.4K10

现代前端工程化-基于 Monorepo lerna 模块(从原理到实战)

翻译:Lerna是一个用来优化托管在 git\npm 多 package 代码库工作流一个管理工具,可以让你在主项目下管理多个子项目,从而解决了多个互相依赖,且发布时需要手动维护多个问题。...资源升级问题 一个项目依赖了多个 npm ,当某一个 npm 代码修改升级时,都要对主干项目进行升级修改。.../node_modules 显示所有的安装 lerna list // 等同于 lerna ls 这里再提一个命令也比较常用,可以通过json方式查看 lerna 安装了哪些,json 还包括路径...lerna bootstrop --hoist 会将 packages 目录下公共模块抽离到最顶层,但是这种方式会有一个问题,不同版本号只会保留使用最多版本,这种配置不太好,当项目中有些功能需要依赖老版本时...再介绍一个命令 yarn workspaces ,可以解决前面说的当不同项目依赖不同版本号问题, yarn workspaces会检查每个子项目里面依赖及其版本,如果版本不一致都会保留到自己 node_modules

3.8K50

你真的了解package.json

每个包管理器都需要一种方式来跟踪在「当前项目中应该使用哪些版本哪些软件」。通常,会创建一个文件,将这些「依赖关系映射到它们对应版本。...当运行 JS 包管理器 install 命令时,它将安装在 package.json 文件中提到软件相应版本。...❞ 案例分析 还记得f_clinpm版本。...但是呢,由于我们项目开发时,可以随意引入外部有的同学也会将在开会环境起作用安装到dependencies。这样,无形增加我们生产环境外部资源容量。...当某个 A 声明了它 peerDependencies,它实际是在声明:“期望运行时环境中会有某个 B 特定版本,但我不会直接将 B 添加为依赖项,而是期望它由运行时环境或其他上层提供

13310
领券