学习搭建Vue组件库

发布时间:2024年01月18日

version

version?字段表示包的版本号,大致符合?x.x.x?的格式,严格来说应该叫?major.minor.patch(主版本号.次版本号.修订号),如果要进一步了解版本号相关的知识,我们可以阅读以下文章来详细了解什么是语义化版本

版本约束

依赖信息的结构是一个对象,其中依赖包的名称作为键(key),依赖的版本约束作为值(value)。

{
  "dependencies": {
    "lodash": "^4.17.21",
  },
  "devDependencies": {
    "vite": "~4.2.0"
  }
}

版本约束限制了包管理器为项目安装依赖时可选的版本范围:

  • ^?的含义是安装最新的?minor?版本。例如?^1.2.0?的约束下,会为项目安装最新的?minor?版本?1.X.Y,但不会安装下一个?major?版本?2.0.0
  • ~?的含义是安装最新的?patch?版本。例如?~1.2.0?的约束下,会为项目安装最新的?patch?版本?1.2.X,但不会安装下一个?minor?版本?1.3.0
  • 如果版本号前面没有任何标识符,表示固定版本号,无论如何都只安装这个固定版本。

?

依赖分类

很多情况下,我们其实并没有真正搞懂常见的三种依赖类型——?dependenciesdevDependenciespeerDependencies?的真正含义与表现。这里简单给出一个表格说明帮助大家正确理解。

?

依赖类型项目中依赖中用途
dependencies会被安装会被安装项目运行时依赖
devDependencies会被安装不会被安装项目在开发过程需要的依赖。一般构建工具、测试框架、代码规范工具都会被作为开发依赖
peerDependencies不会被安装不会被安装。但是若其中声明的依赖没有被项目安装,或者版本不匹配时,会生成警告信息提示用户定义项目需要的依赖环境。常用于表示插件和主框架的关系,如 @vitejs/plugin-vue 的 peerDependencies 中就声明了主框架 vite 和 vue

?

中枢管理操作

在?workspace?模式下,代码仓根目录通常不会作为一个子模块或者?npm?包,而是**主要作为一个管理中枢,执行一些全局操作,安装一些共有的依赖。**下面介绍一些常用的中枢管理操作。

  • 创建一个?package.json?文件。
pnpm init
  • 设置用户的全局?.npmrc?配置
pnpm config set <key> <value>
  • 根据当前目录?package.json?中的依赖声明安装全部依赖,在 workspace 模式下会一并处理所有子模块的依赖安装
pnpm install
  • 安装项目公共开发依赖,声明在根目录的 package.json - devDependencies 中。-w?选项代表在?monorepo?模式下的根目录进行操作。
  • 每个子包都能访问根目录的依赖,适合把?TypeScriptViteeslint?等公共开发依赖装在这里。
pnpm install -wD xxx
  • 卸载公共依赖,在根目录的 package.json - devDependencies 中删去对应声明
pnpm uninstall -w xxx
  • 执行根目录的 package.json 中的脚本
pnpm run xxx
文章来源:https://blog.csdn.net/baidu_41921865/article/details/135667229
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。