美文网首页
工具管理

工具管理

作者: skoll | 来源:发表于2023-04-30 22:48 被阅读0次

    Vite开发服务器搭建原理以及如何识别.vue 文件

    1 .node 拉起一个服务,返回所有请求的数据
    2 .比如index.html
    3 .比如app.vue
    4 .本质上都是fs模块读取文件,然后根据路径设置content-type

    1 .ctx.response.set('Content-type','text/javascript')
    2 .如果是app.vue 这种文件,是会做一个字符串替换,类似于webpack的loader,先把.vue文件处理,然后在返回js文件
    

    vite 处理css文件

    1 .vite天生支持对css文件的处理
    2 .直接用fs模块去读取css文件中的内容
    3 .直接创建一个style标签,将css文件内容直接copy进入style标签里
    4 .将style标签插入到index.html里面
    5 .将css文件的内容直接替换为js脚本,方便热更新或者css模块同时设置content-type为js,让浏览器以js脚本的形式来执行该css后缀的文件
    6 .css module

    1 .基于node
    2 .开启css module 之后,会把css文件先导出为一个对象,将所有类名进行一定规则的替换
    3 .比如讲footer 替换为footer_123
    4 .同时创建一个映射对象,{footer:footer_123}
    5 .将替换后的内容塞进style标签里面然后放入到head里面
    

    7 .开始的css样式

    /* post.css */
    .article {
      font-size: 16px;
    }
    
    .title {
      font-weight: 24px;
    }
    

    8 .编译之后的样式

    .xkpka {
      font-size: 16px;
    }
    
    .xkpkb {
      font-size: 24px;
    }
    

    9 .被打碎的css文件会生成一个json配置

    `{  "article":  "xkpka",  "title":  "xkpkb"  }  `
    

    10 .https://postcss.org/
    11 .我们直接使用的是上面生成的json的value值,所以不会出现重复
    12 .less,sass也是可以用postcss来实现的,但是现在这俩都停止维护了.less自己插件一旦发生更新,postcss-less 也是需要更新的

    post-css-module

    1 .保证css在执行起来是万无一失的,原生的新css语法,能否兼容
    2 .less 是不支持这些东西的,有点类似于babel
    3 .前缀补全。

    preprocessorOptions

    1 .用来配置css预处理的一些全局参数
    2 .less 文档里面的options里面的配置这里都可以穿进去

    preprocessorOptions:{
      less:{
      math:"always"
    //padding:(100px/2):这种写法可以转成50px
    },
    sass:{
      
    }
    }
    

    devSourceMap:true

    1 .文件之间的索引
    2 .true。chrome控制台会跳转到源css文件

    vite 配置文件中css配置流程

    1 .postcss 不会编译全局变量,--globalcolor:red;
    2 .postcss是单个解析css文件的。当在后面的css类里面遇到--globalcolor的时候,他是不会记着全面的变量的
    3 .所以这些全局的css变量,写在variable.css 里面.我们使用的一些未来的css特性是不需要经过less,sass的预处理器进行编译的,我们只能交给postcss来处理

    postcssPresetEnv(
              {importFrom:path.resolve(__dirname,'./variable.css')}
            ),
    

    相关文章

      网友评论

          本文标题:工具管理

          本文链接:https://www.haomeiwen.com/subject/slbgjdtx.html