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

怎样设计网站前端和后端哪个常熬夜

怎样设计网站,前端和后端哪个常熬夜,公司在百度做网站找谁,文字变形logo设计Monorepo架构可以把多个独立的系统放到一起联调#xff0c;本文记录基于pnpm workspace功能#xff0c;如何构建将vitepress和组件库进行联调#xff0c;并且使用turbo进行任务顺序编排。 技术栈清单#xff1a; pnpm 、vitepress 、turbo 一、需求分析 1、最终目标…Monorepo架构可以把多个独立的系统放到一起联调本文记录基于pnpm workspace功能如何构建将vitepress和组件库进行联调并且使用turbo进行任务顺序编排。 技术栈清单 pnpm 、vitepress 、turbo 一、需求分析 1、最终目标 我们最终需要实现这样的一个Monorepo项目架构 --project--package.json--packages--docs--package.json--project-one--package.json--pnpm-workspace.yaml其中各个目录功能如下 project根目录 packages子项目包 packages/docs基于vitepress的文档项目 packages/project-one组件库 2、Monorepo技术选型 实现Monorepo架构的方式主要有以下两种 lernayarn pnpm中workspace配置 这里选择后者因为基于pnpm的包管理逻辑使用软硬链接并且重复使用本地依赖包缓存可以大大提升安装效率节省依赖包存储空间。而且pnpm还继承了npm的所有功能并且支持node版本管理这里非常推荐pnpm。 3、为什么使用vitepress 之前有使用过vuepress后来vite伴随vue3一起被推出体验后果断切换到vite基于esmodule的调试模式调试效率直线提升。所以同理这里也同样推荐使用vitepress而不是vuepress。 4、turbo的作用 turbo全名turborepo本身也是一个Monorepo管理工具。这里主要使用其任务编排能力能够按正确的顺序执行Monorepo内的项目的任务。 例如Monorepo里有三个项目ABC。A和C还需要依赖于B。也就是说B项目需要先构建好后A和C才能构建。 正常每个项目都按照这个顺序做任务编排lint-build-test-deploy。即检查规范-构建项目-测试项目-部署项目。 从上图可以看到使用lerna时A、B、Cd这三个项目中的lint、build、deploy都是并行进行的。如果A、C都依赖B那么A、C在build的时候很可能 B d还没有build完成会拖慢A、C的build效率。 但是turbo能够将每个项目里的任务进行拓扑排序再执行。即图中B项目并行执行linttestbuild之后A和C就可以更快的执行构建大大提高了整体的效率。 二、开发 1、文件结构 首先创建如下文件结构 --project--package.json--packages--docs--package.json--project-one--package.json--pnpm-workspace.yaml--turbo.json创建完project根目录、packages/docs、packages/project-one后分别执行pnpm init做项目初始化生成package.json文件。 并且在跟目录创建 pnpm-workspace.yaml 文件 packages:- apps/*- packages/*识别packages和apps目录下的项目作为子项目。这样在执行pnpm add XXX --workspace时就会到子项目中去寻找。 2、turbo.json {$schema: https://turbo.build/schema.json,pipeline: {build: {dependsOn: [^build],outputs: [dist/**]},lint: {},dev: {cache: false,persistent: true},clean: {cache: false}} }3、根目录script命令行代理 #package.json scripts: {turbo-test: turbo run test,turbo-build: turbo run build,test: echo \Error: no test specified\ exit 1,docs:dev: pnpm --filter \docs\ dev,docs:build: pnpm --filter \docs\ build,docs:serve: pnpm --filter \docs\ serve,docs:preview: pnpm --filter \docs\ preview,one:dev: pnpm --filter \project-one\ dev }#docs package.json scripts: {dev: vitepress dev,build: vitepress build,serve: vitepress serve,preview: vitepress preview,test: echo \Error: no test specified\ }#project-one package.json scripts: {dev: node index2.js,build: node index2.js,test: echo \Error: no test specified\ }4、初始化project-one项目 代码如下 #index.js const addOne (x 0, msg 未填) {console.log(调用project-one的项目是, msg);return x 1; } export default addOne#index2.js console.log(nihao index2);5、初始化docs项目 docs使用vitepress构建打开终端进入docs目录执行下面命令对docs初始化 # 安装vitepress pnpm add -D vitepress # 初始化项目这里会出现交互式命令行默认回车下一步就行 pnpm dlx vitepress init调整docs/package.json代码如下 {name: docs,version: 1.0.0,description: ,main: index.js,scripts: {dev: vitepress dev,build: vitepress build,serve: vitepress serve,preview: vitepress preview,test: echo \Error: no test specified\},keywords: [],author: ,license: ISC,dependencies: {project-one: workspace:^,vitepress: 1.0.0-rc.20,vue: ^3.2.45},devDependencies: {} }创建docs/index.md文件代码如下 --- layout: home hero:name: VitePresstext: Vite Vue powered static site generator.tagline: Lorem ipsum...actions:- theme: brandtext: Get Startedlink: https://github.com/jkkdeng- theme: alttext: View on GitHublink: https://github.com/jkkdengfeatures:- icon: ️title: Simple and minimal, alwaysdetails: Lorem ipsum...- icon: ️title: Simple and minimal, alwaysdetails: Lorem ipsum...- icon: ️title: Simple and minimal, alwaysdetails: Lorem ipsum... --- script setup import addOne from project-one addOne(10,docs) /scriptimport addOne from project-one这行会在workspace中寻找project-one项目下的package.json文件识别main: index.js,配置然后获取到export的addOne方法。最终打印到浏览器控制台。 6、执行 到这里就基本都配置完成了这里我们把项目跑起来看下运行效果。 我们打开终端命令行并进入project根目录. 执行pnpm run turbo-build #turbo.json build: {dependsOn: [^build] },系统会找到turbo.json中pipelinebuild下的配置dependsOn: [^build]^build含义是指上游的build任务优先执行。猜测turbo应该对各个子包中的package.json进行扫描查看是否存在依赖关系例如我们这里是docs项目依赖project-one项目所有优先对proect-one项目进行build然后在对docs进行build。看下面的运行结果也的确如此。 执行pnpm run turbo-test #turbo.json test: {dependsOn: [build] },这里的build就是pipeline中的build任务含义是每个项目要执行自己的test任务就要先执行build任务。 可以看到执行顺序依次是 project-one - buildproject-one - testdocs - builddocs - test 执行pnpm run one:dev 执行pnpm run docs:dev 源码
http://www.hkea.cn/news/14573863/

相关文章:

  • 切实加强门户网站建设国家反诈中心app下载怎么注册
  • 泰安网络推广 网站建设 网站优化微信公众号网站怎么做
  • 网站需要怎么优化比较好设计网站流程
  • php做网站开发怎么给网站做推广
  • 用thinksns做的网站工作室推广网站
  • 做网站宿迁做英文网站违法吗
  • 武威网站建设优化怎么样做电影网站
  • 服务佳的网站建设大连有做途家网站吗
  • 招生网站怎么做外国优秀网站设计
  • 网站素材 图标为企网站
  • 做网站的服务器有什么作用带分期功能的网站建设
  • 网站注册域名企业信息查询平台有哪些
  • 网站建设工作量评估报价表wordpress去版权信息
  • 做汽配外贸是在哪个网站做html编辑器有哪些
  • 网站域名被黑贵阳网站建设王道下拉惠
  • 阳谷网站建设费用网络培训资格证书如何获得
  • 深圳做网站的好公司淡水网站建设
  • 网站建设方案页面设计分析苏州专业做网站公司有哪些
  • 成都建工雅安建设有限责任公司网站太原seo外包公司
  • 学校网站建站漂亮的html页面源码
  • 网站建设目的是什么京东网站设计特点
  • 关于文案的网站批量建站怎么赚钱
  • 所有网站的名字大全可以先做网站后备案吗
  • 网站速度慢的原因哪家小吃培训网站做的最好
  • 中国民航机场建设集团网站高端网站定制站
  • 网站建设如何选择良好的服务器昆明seo建站
  • 制作html购物网站源代码下载搭建网站软件下载
  • 网站没有做301的后果是什么视觉设计是什么
  • 公司营业执照可以做几个网站校园网站建设招标公告
  • 南京市英语网站建设wordpress过时了吗