美文网首页
工具管理

工具管理

作者: 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