当前位置: 首页 > news >正文

长春网站建设价格wordpress 快讯模板

长春网站建设价格,wordpress 快讯模板,自己做网站怎么加定位,公司牌子制作技术选型 使用 Pnpm Turbo 搭建 Web Component Monorepo项目 stencil-component-ui 组件库 pnpm 作为包管理器Turborepo 作为构建系统Vitepress 管理文档 pnpm 技术 什么是 pnpm? 它有哪些优势#xff1f; pnpm 跟 npm、yarn一样#xff0c;都是用于管理Node包依赖的管…技术选型 使用 Pnpm Turbo 搭建 Web Component Monorepo项目 stencil-component-ui 组件库 pnpm 作为包管理器Turborepo 作为构建系统Vitepress 管理文档 pnpm 技术 什么是 pnpm? 它有哪些优势 pnpm 跟 npm、yarn一样都是用于管理Node包依赖的管理器它是号称新一代的最先进包管理工具。按照官网说法它相比其他包管理工具可以大大节约磁盘空间并提升安装速度创建非扁平化的 node_modules 文件夹目录结构很清晰具体介绍可以参考 pnpm 官网 pnpm 提出了 workspace 的概念内置了对 monorepo 的支持那么为什么用 pnpm 取代之前的 lerna 呢? 这里总结了以下几点原因 lerna 已经不再维护后续有任何问题社区无法及时响应pnpm装包效率更高并且可以节约更多磁盘空间pnpm本身就预置了对monorepo的支持不需要再额外第三方包的支持 pnpm 搭建 menorepo 工程 在工程根目录下新建 packages 目录并且在 packages 目录下创建 components 和 icons 两个子项目这里使用 stencil 脚手架进入 packages 目录根据 Stencil 官网 创建项目 pnpm create stencil有三个选项直接回车选择第一个 components 是创建组件库项目的输入项目名称即可创建项目 分别使用 stencil 创建了 components 和 icons 项目components 是来开发组件库源码的icons 是用来开发编译 svg 图片和组件的目录如下 在工程根目录建一个 pnpm-workspace.yaml用于启用 workspace packages:- packages/*- docs以上指定工作空间内的包依赖关系packages 用于管理源码docs 编写文档然后执行 pnpm install 安装依赖 由于工程根目录 package.json 不需要发包需要配置 private: true 在项目中安装包 Pnpm 启用了 workspace用 Pnpm 安装依赖必须指定安装的位置。-w 是 --workspace-root 的别名即安装到工程根目录作为所有子模块的公共依赖。也可以用 -r 递归给每个子模块安装或者用 --filter package_name 给指定子模块安装。-D 是 --save-dev 的别名即安装依赖到 devDependencies 节点下不指定参数默认安装到 dependencies 节点。 给每个项目起个包名修改components 和 icons 项目 package.json 中的 name 字段为 swc-ui/components 和 swc-ui/iconsdocs 使用 vitepress 搭建包名直接用 docs 这一步比较关键安装包、构建、发包都需要用到这个包名。swc-ui 是提前创建好的 scope如果没有的话需要先创建 图标库、组件库包安装到 docs 使用图标库包安装到组件库项目中使用使用 --filter 指定安装包的位置 pnpm add swc-ui/components swc-ui/icons --filterdocspnpm add swc-ui/icons --filterswc-ui/componentscomponents 安装 swc-ui/icons 后package.json新增了 swc-ui/icons: workspace:^ dependencies: {swc-ui/icons: workspace:^} 通过 Pnpm 提供的 Workspace Protocol可以很方便地实现子模块互相引用。在开发的时候也推荐使用 workspace:^这样可以确保依赖的是最新版本代码。当我们用 pnpm publish 发包的时候Pnpm 会将 workspace:^ 替换为实际的版本。 只允许 pnpm 当在项目中使用 pnpm 时如果不希望开发者使用 yarn 或者 npm 安装依赖可以将下面的这个 preinstall 脚本添加到工程根目录下的 package.json 中 preinstall: npx only-allow pnpm因为在在 Pnpm workspace 模式下 npm install 或者 yarn install 安装依赖无法兼容整个工程很可能跑不起来所以用 only-allow 库去限制包管理器当用了其他包管理器会直接抛异常退出进程。 Turborepo 在项目开发和打包发布必须先启动 icons 和 components 项目编译构建才能运行 docs 文档如果使用 pnpm 构建可能需要使用 -r 或者 并行执行如 {scripts: {build: pnpm -r --parallel --filter./packages/* run build,test: pnpm -r --parallel --filter./packages/* run test} }Pnpm 给我们提供的 -r 参数递归执行 NPM scripts但是它不能按照先后顺序执行串行的任务并且 -r 过于简单粗暴有些模块明明没有修改代码任务还是全量执行影响 CI 构建效率。 专业的事交给专业的工具去解决而 Turborepo 就非常擅长实现任务编排 什么是Turborepo Turborepo 是一个高性能的 JavaScript 和 TypeScript 项目构建系统采用Go语言实现所以在语言层面上就具有一定的性能优势可以大大提高monorepo项目的构建速度。 在开发层面 Turborepo抽象出所有繁琐的配置、脚本和工具减少项目配置的复杂性可以让我们专注于业务的开发并且支持使用 Yarn、Npm、Pnpm TurboRepo的优势 1、多任务并行处理 Turbo支持多个任务的并行运行我们在对多个子包编译打包的过程中turbo会同时进行多个任务的处理 对于项目中 A 依赖于 BB 依赖于 C构建串行顺序为 C、B、A。Turbo它能够有效地安排任务类似于瀑布可以同时异步执行多个任务而 lerna 一次只能执行一项任务 所以Turbo的性能不言而喻。 2、更快的增量构建 如果我们的项目过大构建多个子包会造成时间和性能的浪费turborepo中的缓存机制 可以帮助我们记住构建内容 并且跳过已经计算过的内容优化打包效率。 3、任务管道 用配置文件定义任务之间的关系然后让Turborepo优化构建内容和时间。 4、远程云缓存 Turbo通过其远程缓存功能团队成员、CI/CD 共享远程构建缓存以实现更快的构建。 安装到项目 1、在项目根目录下安装turbo依赖 pnpm i turbo --save-dev -w2、在根目录下添加 turbo.json 配置文件向 pipeline 字段中配置 npm scripts 中的命令比如 dev, build 命令 {$schema: https://turbo.build/schema.json,pipeline: {build: {dependsOn: [^build],outputs: [.next/**, !.next/cache/**]},dev: {cache: false,persistent: true}} }3、在根目录 package 配置 scripts scripts: {dev: turbo run dev,build: turbo run build }以上 Turborepo 项目就简单配置完成了Turbo 和 Pnpm Workspace 很好的结合起来管理 monorepo 项目 Turbo 开发环境 当执行 npm run dev 命令Turbo 会分析 Package 包的依赖关系运行 swc-ui/icons、swc-ui/components docs 开发环境通过 turbo.json 配置一行命令就启动了开发环境不需要手动去执行 icon、components、docs的命令 Turbo 构建打包 Turbo 构建提供了缓存当执行 npm run build 全部构建需要花费1分钟06秒 第二次构建修改了一个包花费了 30 秒第三次没有修改源码重新构建1秒内构建完明显可以感受到 Turbo 缓存构建的优势。 如对新技术开发组件库感兴趣也欢迎加入stencil-component-ui给个 star 鼓励一下
http://www.zqtcl.cn/news/736326/

相关文章:

  • 甘肃网站建设开发怎么利用花生壳做自己的网站
  • 怎么查询网站开通时间建个短视频网站
  • 物流网站建设广东网站建设效果
  • 网站推广工作流程图天蝎网站建设
  • 备案ip 查询网站查询网站校园门户网站建设方案
  • 网站seo快速优化技巧建设网站的需要学习哪些课程
  • 网站建设微信托管wordpress p=
  • 专业手机网站制作哪家好吉林建筑大学本科招生网
  • 建立一个网站需要哪些google和百度等相关网站的广告词
  • 手机开发网站教程做古建的那些网站比较适合
  • 网站建设公司的前景长沙商城网站开发
  • 大型网站tag标签 索引自己做网站需要哪些软件
  • 石排做网站万网网站备案流程
  • 南京建设银行网站首页简单的ui界面制作
  • 门户网站 建设 如何写如何布置网站
  • 网站前台功能模块介绍建设银行信用卡网站是哪个好
  • 用python做网站我那些网站开发开发语言
  • 建设网站怎样做安卓app软件公司
  • 重庆seo整站优化效果上海城建建设官方网站
  • 做淘宝要网站兰州画册设计
  • 外贸网站排行榜前十名电影网站标题怎么做流量多
  • 网站建设吉金手指专业13网站备案完成后不解析
  • 社保网站减员申报怎么做长春建筑网站
  • 网站开发用原生wordpress读者墙
  • 食品网站网页设计成都建网页
  • 网站建设 珠海专业团队表情包张伟
  • 建设铝合金窗网站.net制作网站开发教程
  • 网站后台服务器内部错误wordpress 多级菜单
  • 怎样更新网站内容怎么查看网站是哪家公司做的
  • 建设网站网站建站建立一个网站平台需要多少钱