手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年10月的文章

Resolve: Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.

Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.
More info: https://sass-lang.com/d/legacy-js-api
 
在用UNIAPP开发小程序的时候,只要运行pnpm dev:mp-weixin,就会报一堆这样的错误,但也没办法,毕竟你也不知道 哪些库就是用了一些旧方法,由于uniapp的cli模式默认用的是vite,所以搜了一下,网上的教程都是说,增加 css.preprocessorOptions.scss.api 为 modern或者modern-compiler就OK了。但试了一下,这根本就没用。
 
再看了一下github上,说增加这个,只对H5项目有效,其他项目均无效。
此时突然看到有人说,其实还要加一个参数,和api平级,silenceDeprecations:['legacy-js-api']就行了。
于是,加入后重启pnpm,果然干净了。
 
完整配置如下:
XML/HTML代码
  1. css: {  
  2.   preprocessorOptions: {  
  3.     scss: {  
  4.       api: 'modern-compiler',  
  5.       silenceDeprecations: ['legacy-js-api'],  
  6.     },  
  7.   },  
  8. },  
至此,一切OK
 
 

开始尝试在VSC下进行开发

看这个标题,估计要被很多人笑了。其实也很正常,我是一个重度Idea用户,也连续买了N年了。功能强大,附加功能也很优秀,用了就实在时抛不开了。

 
但随着现在Monorepo的项目越来越多。一个项目里同时前、后端代码都有的时候,单一功能的IDE就一点捉襟见肘了。但是打开一个IDEA吧,又感觉有点重,而且IDEA里默认的插件都是为了开发JAVA而来的。这个就更尴尬了。
 
这时候就感觉,VSC可以拿出来一用了(也不是没想过用fleet,但fleet经过3年多了,感觉仍然是像一个sublimetext一样的编辑器,而不是IDE)。
 
之前也用过VSC,就是因为插件太多,而且部分插件都不知道 是用来干嘛的,再加上不能为单个项目,只启动想启用的插件,才慢慢放弃的,现在感觉比以前好多了,但还是不能自定义插件,这个就有点烦。而且vsc的插件都在~/.vscode目录里,也就是在本地,为什么不能让workspace来选择要启用和关闭插件呢?哪怕像 pnpm管理的node_modules一样,是引用过来的也行啊。也可能其实已经有了,但我用的少,并不知道罢了
 
继续用,再体验一下,也许会有一个不一样Feel.
 

Tags: vsc, idea, jetbrains

uniapp的button如何去除边框

在使用uniapp的时候,不可避免会用到他的button组件,如果需要对button进行自定义,就会发现他的边框怎么都占了坑位,如果你还有自定义radius,就会发现整个圆角全是毛边。这时候 就想着要去除边框了。

 
网传的方法大致 有两种 
1、如果全部要自定义的,可以直接 button::after{ border: none;}
2、还有一种是针对button的plain模式,这种模式下button样式简单,可以 button[plain]{ border: none;}
 
 

小程序字体的处理

 小程序里自定义字体实话实说是一件很痛苦的事情。如果为了好看,只弄英文字体硬实还没那么让人纠结,但事实上中文才是让人最头疼的。一个正常的中文字体少说8M左右,如何字库全一点的。20多M也不是不可能。放进APP可能还能接受,但放到小程序,好吧,直接放不下。

 
所以网上就有各种不同的工具,而且小程序也支持引入全部字体,常见的方法就是那么几种
1、非中文字体,比如图标,直接用iconfont,因为他支持网络字体和本地字体两种,如果不大就本地字体吧
2、英文,转成woff后,估计也没多少了,毕竟正常使用也就26个英文字母+10个数字,再不济加上一些标点符号。ASCII的可见字符基本上就可以在正常的页面里全部使用到了
3、中文,这才是大头,之前写过一篇:字体转换相关 ,但其实现在想想,这个有点偏手动了。
 
所以针对3,我们需要重新整理一下,原贴里的sfntool仍然需要,但这个工具有个小缺点,即不支持woff2,但也有个优点,即eot可以压缩,这样的话,处理英文字体就可以更小了。
处理中文分这么几步
1、获取项目中所有出现的中文,比如src目录下,针对vue/js/ts/jsx/tsx等文件,忽略css文件和图标等,将中文取出来去个重(不去也影响不大)。这个脚本可以自己写也可以用网上的一些开源库,象字蛛之类的。如果懒得找,问一下狗屁通,估计就能直接写了
2、传入sfntool中,生成相应的字体,目前看来,如果不压缩,woff会是比较小一点的
3、最重要的就是这一步,有多种处理:a.如果字体不大,就直接扔static里,建一个font.scss就行;b.如果字体不是太大,比如只有7、80K,可以考虑base64一下在font-family的url里,直接用base64;c.如果超过80K以上,建议直接上传到CDN去,毕竟这玩意其实还没有小程序的素材大,现在哪个图片不是要上百K的?
 
在这样的基础下,再利用package.json创建一个命令,就可以一键生成了,比如我现在就是这样,类似:java -jar sfntool.jar -s "$(node chinese.ts)" infile outfile && node base64.ts && node font-upload.ts
 
只是一个简单的描述处理方式 ,其实都可以在base64.ts里进行判断和处理,但基于一事一做的原则还是多拆开了。
字体处理就是这样,说方便也方便说复杂也复杂。

Tags: chatgpt, sfntool