首页 > 其他分享 >zustand Auto Generating Selectors/ts-pattern/swr/TypeScript在monorepo项目中实现即时更新/monorepo docker/turb 使

zustand Auto Generating Selectors/ts-pattern/swr/TypeScript在monorepo项目中实现即时更新/monorepo docker/turb 使

时间:2024-07-05 17:08:18浏览次数:17  
标签:turbo zustand -- repo build https pnpm swr monorepo

zustand Auto Generating Selectors

https://docs.pmnd.rs/zustand/guides/auto-generating-selectors

ts-pattern 替换匹配组件代

swr

TypeScript在monorepo项目中实现即时更新

https://colinhacks.com/essays/live-types-typescript-monorepo

monorepo docker

项目名:my-project
docker-files/my-project
这个是为了针对单项目多服务的情况,所有 docker 都可以写到这里,不用单独放在子模块里面了

镜像最好已经安装了 pnpm
# 基础镜像
FROM node:18.18.2pnpm8.5

# 设置工作目录
WORKDIR /usr/src/app

# 安装 [email protected]
RUN npm config set registry https://registry.npmmirror.com/
RUN npm install -g [email protected]

# 复制项目代码
COPY . .

# 裁剪相关项目
RUN turbo prune my-project --docker

# 安装依赖
RUN cp -r  out/json/ .
RUN cp out/pnpm-lock.yaml ./pnpm-lock.yaml
RUN pnpm install

# 复制源码
RUN cp -r  out/full/ .

# build正式环境 --env-mode=loose这里采用松散模式,不然没法传递环境变量
RUN pnpm turbo run build --env-mode=loose --filter=my-project...

# 进入对应项目准备发布
WORKDIR /usr/src/app/apps/my-project

# 静态资源上传到cdn
RUN pnpm cdn\_upload

# 暴露内部端口号
EXPOSE 5000

# 起服务
ENTRYPOINT ["pnpm"]
CMD ["production"]

turb 使用

给子模块安装依赖
pnpm install jest --save-dev --recursive --filter=web --filter=@repo/ui --filter=@repo/web

将依赖关系保持在同一版本
https://turbo.build/repo/docs/crafting-your-repository/managing-dependencies#keeping-dependencies-on-the-same-version
pnpm up --recursive typescript@latest

tsconfig.json
https://turbo.build/repo/docs/crafting-your-repository/creating-an-internal-package#add-a-tsconfigjson
{
"extends": “../../base.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}
根据 TypeScript 规范, include 和 exclude 键不会从基本配置中继承,因此您在此处包含了它们。

并行执行命令
https://turbo.build/repo/docs/crafting-your-repository/running-tasks#running-multiple-tasks
turbo run lint test build

任务模式
https://turbo.build/repo/docs/crafting-your-repository/configuring-tasks

指定缓存
https://turbo.build/repo/docs/crafting-your-repository/configuring-tasks#specifying-inputs

既可以并行运行,又能在依赖包的代码发生变化时正确地检测到错误
https://turbo.build/repo/docs/crafting-your-repository/configuring-tasks#dependent-tasks-that-can-be-ran-in-parallel
重点transit

过滤包
turbo build --filter=@repo/ui

强制忽略缓存
--force
https://turbo.build/repo/docs/crafting-your-repository/caching#overwriting-a-cache

watch
监听模式

标签:turbo,zustand,--,repo,build,https,pnpm,swr,monorepo
From: https://www.cnblogs.com/beilo/p/18286181

相关文章

  • Symfony Monorepo:一站式开发的艺术与实践
    ......
  • React 使用 Zustand 详细教程
    前言Redux、MobX和ContextAPI等技术的存在,使得管理大型应用的状态变得更加可行。本教程要深入探讨的是Zustand——一个极简且高效的状态管理库,详细介绍如何在React项目中使用Zustand来管理状态。什么是Zustand?Zustand是一个简单、小体积(只有不到1kB)且性能优......
  • 使用 PNPM 从 0 搭建 monorepo,测试并发布
    1目标通过PNPM创建一个monorepo(多个项目在一个代码仓库)项目,形成一个通用的仓库模板。这个仓库既可以用于公司存放和管理所有的项目,也可以用于将个人班余的所有积累整合其中。2环境要求核心是PNPM和Node.js,没有特殊的版本要求,只要他俩能对应上即可。除了以上......
  • 大型项目管理神器:掌握yarn monorepo的安装和使用
    I.引言在当今的前端开发中,由于项目规模的不断增长和多团队协同,Monorepo成为了越来越流行的开发模式。Monorepo指的是将多个相关项目或者模块打包在一起的软件开发模式,它可以让开发人员更好地组织管理代码,减少重复的代码,提高可复用性和开发效率。在前端开发中,使用yarnmonorep......
  • 使用 CRXJS、Vite、TypeScript、React、Zustand、Antd 开发 Chrome 浏览器插件——自
    一、CRXJS一、什么是CRXJS?CRXJSVitePlugin是一款使用现代Web开发技术制作Chrome扩展的工具二、CRXJS的作用CRXJS支持热加载和静态资源导入,无需手动构建配置工具CRXJSVite插件通过将Vite的精细功能与简单的配置策略相结合,简化了Chrome扩展开发者体验二......
  • React — zustand状态管理工具
    zustand是一个用于状态管理的简单而强大的库,它可以与React一起使用。它提供了一种简单的方式来管理组件的状态,并且遵循了ReactHooks的使用规范。使用zustand可以方便地创建和共享状态,同时还能够实现状态的订阅和更新。通过zustand,你可以创建自定义的状态钩子,并在组件中......
  • 除了Redux能不能使用zustand作为局部作用域的数据统一存储
    当然可以。Zustand作为一个轻量级的状态管理库,非常适合用来作为局部作用域的数据统一存储方案。相较于Redux,它更注重简洁性和易用性,并且充分利用了ReactHooks的特性。在使用Zustand时,你可以创建多个独立的store来管理不同组件或模块的本地状态。每个store都是自包含......
  • SWR " stale-while-revalidate " 立即使用缓存数据 + 后台异步刷新
    在软件开发中,SWR是"stale-while-revalidate"的首字母缩写,这是一种在网络应用(尤其是Web应用)中用于数据获取和缓存的策略。这个策略最早由Next.js团队提出并在其数据获取库next/swr中实现了这个思想。SWR的工作原理如下:立即使用缓存数据:当页面首次加载或数据需要更......
  • PHP导出Excel,从xlswriter到golang的进化是2分缩减到5秒
    先看图 一、介绍xlswriter是一个高效处理excel文件的PHP扩展,底层以C语言实现;处理速度是PHPExcel几十倍甚至几百倍的效率。官方链接:https://gitee.com/viest/php-ext-xlswriter缺点:更深入的功能(例如读取excel图片)健全;导出excel样式不够丰富导出excel文件,xlswriter绝对是效......
  • 袋鼠云数栈前端从 Multirepo 到 Monorepo 研发效率提升探索之路
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:星野困境频生前端代码管理何解?前端代码管理一直是困扰着不少前端开发团队的难题,从开发到发布的整体工作流程中,除了常规的技术问题外,往......