pnpm、monorepo分包管理、多包管理、npm、vite、前端工程化、保姆级教程

浅尝pnpm monorepo 多包管理方案

💡tips: 创建pnpm monorope多包管理框架流程

初始化
mkdir taurus & cd taurus
pnpm init

创建基础文件
  1. 创建文件pnpm-workspace.yaml
packages:- 'packages/**'
  1. 创建文件夹packages/
-packages/
-package.json
-pnpm-workspace.yaml
创建子项目
  1. 创建子项目@taurus/three

tips:创建项目时将项目名称设置为目标名称(@taurus/name 方便区分共有包和自定义包,不做强制要求),可查看 packages.json 中的name字段进行验证

cd packages
pnpm create vite three --template vue
  1. 创建子项目@taurus/utils
cd packages
mkdir utils & cd utils
npm init
  1. 添加子项目引用
pnpm add @tautus/utils --filter @taurus/three -wP

添加成功后验证方法
image.png

@taurus/three-ts配置引用目录别名 @

  1. 在vite.config.ts中添加 alias

    import { defineConfig } from "vite";
    import vue from "@vitejs/plugin-vue";
    import path from 'path';
    // https://vitejs.dev/config/
    export default defineConfig({plugins: [vue()],resolve:{alias:{"@":path.resolve(__dirname,"src"),'components': path.resolve(__dirname, './src/components'), // 设置 'components' 指向 src/components 目录}}
    });
    
  2. 解决使用nodeAPI时ts报错问题,下载node类型函数

    pnpm add @types/node -wD
    
  3. 解决文件中使用@引用是的ts报错,在tsconfig.json中设置@别名

    {"compilerOptions":{"baseUrl": ".", // 这个选项中指定了相对于哪个目录解析别名"paths":{"@/*": ["src/*"] // 这里设置别名@指向src目录下的文件}}
    }
    

支持less

pnpm add less less-loader --filter @taurus/three-ts -w

配置vite.config.ts

{...css:{preprocessorOptions: {less: {math: "always", // 括号内才使用数学计算globalVars: {// 全局变量mainColor: "red",},},},}
}

组件中使用

<style lang="less" scoped>.classA{.p1{color:red;}}
</style>

接下来开始编写你颠覆时代的代码吧

欢迎各位猿佬留言交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/578590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Net8 ABP VNext完美集成FreeSql、SqlSugar,实现聚合根增删改查,完全去掉EFCore

没有基础的&#xff0c;请参考上一篇 彩蛋到最后一张图里找 参考链接 结果直接上图&#xff0c;没有任何业务代码 启动后&#xff0c;已经有了基本的CRUD功能&#xff0c;还扩展了批量删除&#xff0c;与动态查询 动态查询截图&#xff0c;支持分页&#xff0c;排序 实现原理…

《让你的时间多一倍》逃离时间陷阱,你没有自己想的那么懒 - 三余书屋 3ysw.net

让你的时间多一倍 今天我们来阅读法比安奥利卡尔的作品《让你的时间多一倍》。或许你会心生疑虑&#xff0c;这本书是否又是一本沉闷的时间管理指南&#xff1f;但我要告诉你的是&#xff0c;尽管时间管理这个话题已经为大众所熟知&#xff0c;这本书却为我们揭示了一个全新的…

SpringBoot实现RabbitMQ的定向交换机(SpringAMQP 实现Direct定向交换机)

文章目录 Direct 交换机特点实战声明交换及其队列(以注解方式)发消息 应用 上一篇文章中的 Fanout 模式&#xff0c;一条消息&#xff0c;会被所有订阅其交换机的队列都消费。 但是&#xff0c;在某些场景下&#xff0c;我们希望不同的消息被不同的队列消费。这时就要用到 Dir…

RabbitMQ 延时消息实现

1. 实现方式 1. 设置队列过期时间&#xff1a;延迟队列消息过期 死信队列&#xff0c;所有消息过期时间一致 2. 设置消息的过期时间&#xff1a;此种方式下有缺陷&#xff0c;MQ只会判断队列第一条消息是否过期&#xff0c;会导致消息的阻塞需要额外安装 rabbitmq_delayed_me…

实时语音识别(Python+HTML实战)

项目下载地址&#xff1a;FunASR 1 安装库文件 项目提示所需要下载的库文件&#xff1a;pip install -U funasr 和 pip install modelscope 运行过程中&#xff0c;我发现还需要下载以下库文件才能正常运行&#xff1a; 下载&#xff1a;pip install websockets&#xff0c;pi…

三大热门猫咪主食冻干测评:希喂、VE、PR主食冻干PK

很多铲屎官在选购主食冻干时进口、国产犹豫不决&#xff0c;总觉得进口的主食冻干品控、配方会比国产的更好&#xff0c;但是进口的营养指标又不如国产、价格也令人望而却步。正是这样的摇摆不定&#xff0c;最后抱着试一试的心态盲入主食冻干&#xff0c;运气好的买回家的主食…

基于递归残差U-Net的医学图像分割

基于递归残差U-Net的医学图像分割 摘要相关工作方法---3 RU-Net and R2U-Net Architectures---3 RU-Net和R2 U-Net架构 【2019】Recurrent residual U-Net for medical image segmentation 摘要 基于深度学习&#xff08;DL&#xff09;的语义分割方法在过去几年中一直提供最先…

YoloV8实战:使用YoloV8检测钢材表面缺陷

摘要 本文讲解一下实战,使用YoloV8检测钢材表面缺陷。起因是有粉丝搞不定这个数据集,检测的时候出现了不收敛的情况。所以,给大家讲讲如何去做。 不收敛的原因 一般遇到不收敛的情况,就是数据转化的时候出错了,大家可以打开runs下面的训练日志,观察一下是否正常。 如…

js动态设置页面高度

准备一个div <div class"card-edit"><!-- 业务需求 --> </div>开始操作 // 获取页面的中需要设置高度的元素 如&#xff1a;card-editconst autoStyle document.getElementsByClassName(card-edit)[0]// 根据业务需求做判断// 此处设定&#…

利用HIVE的窗口函数进行SQL查询中出现的问题记录

student_info部分数据 score_info部分数据 course_info 1、问题复现 --完整SQL selectsti.stu_id,sti.stu_name,concat_ws(",",collect_set(ci.course_name)) over(partition by sti.stu_id) fromstudent_info sti left joinscore_info sci onsti.stu_idsci.stu_id l…

以XX医院为例的医疗建筑能效管理系统【建筑能耗 供电可靠 】

一、行业背景 二、行业特点 1.供电可靠性要求高&#xff1a;医院配电系统复杂&#xff0c;门诊、急救、手术室、ICU/CCU、血液透析等场合特一级和一级负荷比较多&#xff0c;一旦发生故障会造成严重影响&#xff0c;对配电可靠性要求极高。 2.能耗水平高&#xff1a;医院能耗…

超卖问题的 4 种解决方案来了,太硬核了

大家好&#xff0c;我是路人&#xff0c;最近刚推出的《Java 高并发 & 微服务 & 性能调优实战案例 100 讲》&#xff0c;此课程目前已发布上线&#xff0c;正在连载中&#xff0c;文末有观看方法。 所有案例均源于个人工作实战&#xff0c;均提供原理讲解 & 亲手敲…