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

phpstorm/webstorm中如何识别 vite 项目的@

在使用 phpstorm/webstorm 进行前端开发的时候,一般会设置 alias,比如@,但在 IDEA 中,如果项目是 vite/vuejs 的时候 ,无法识别路径。

网上教程很多,什么设置.eslintrc.js / jsconfig.json / tsconfig.json 之类的,但其实重启 IDE 后仍然无法识别。
 
查了一下资料,原来目前 phpstorm 对@的 alias,只支持 webpack,也就是说,如果你的前端项目是 webpack 的,其实是能够识别的。因此,只要在项目根目录下,随便建一个文件,尽量不要叫 webpack.config.js,以防被项目自动识别。你可以建一个 alias.config.js,内容如下:
JavaScript代码
  1. const path = require("path");  
  2. module.exports = {  
  3.   resolve: {  
  4.     alias: {  
  5.       '@': path.resolve(__dirname, 'resources/js'),  
  6.       '~': path.resolve(__dirname, 'resources')  
  7.     }  
  8.   }  
  9. }  
看到这个 resource/js 就知道当前是在 laravel 项目下面了。
在 Ide 的 setting中 :
Languaes & Frameworks > Javascript > Webpack ,选择手动,指定 alias.config.js ,确定后,再打开 *.vue 文件,会发现原来的 import 文件都能够自动识别了。
 

Tags: vite, laravel, webpack, phpstorm, webstorm

tailwindCss与 elementUI 的冲突解决

 解决 tailwindCss 与 elementUI 最简单办法就是

1、在 app.js(或main.js)中,先加载 tailwindCss 再加载 elementUI 和相关 css
2、在 tailwind.config.js 中,plugins节点下,增加:
JavaScript代码
  1. plugin(function ({addBase}) {  
  2.   addBase({  
  3.     ".el-button": {  
  4.       "background-color""var(--el-button-bg-color,val(--el-color-white))"  
  5.     }  
  6.   })  
  7. }),  
 
说白了,就是继续针对 el-button 重新赋值。
再打开页面就完全正常了。
 

ElementUI的form校验的number

 一般而言,elementUI的prop+rules可以用来对字段进行校验。大多数情况下感觉都没什么问题,毕竟官方的例子摆在那里。element-plus的例子没有的,element-ui2的例子也比较全。

但element-plus和elementui中都 没有对number类型进行介绍,如果直接{type:'number',....} 不管你填入什么值 ,都会报错,即使你用el-input+type="number",效果仍然一样
这是因为vue对所有的input默认都是当成string来解析的,因此你对一个string判断number,肯定就是失败的
网上80%的例子都是说采用:v-model.number="form.xxx" 来处理,确实,这样处理是OK的,但你会发现一个很严重的问题,那就是能输入的内容都是integer了。没法有小数点
 
这时候其实还是可以看element-plus所使用的async-validator的官方例子,因为黑夜的象{required:true},{type:"array"}等,都是来自于async-validator的官方支持,而官方是支持type="number"的。现在剩下的其实就是将el-input中的内容转为Number进行判断。仅此而已
 
官方的例子中有transform,这是一个钩子函数,用于验证前将数据进行简单的转换,比如我们就可以{type:"number",transform: Number},如果不能转成Number,其实也就失败了
 
---
临时写的,就先这样,后续有机会慢慢写的更详细一点,也或许就不再写了
参考:
1、https://github.com/yiminghe/async-validator
2、https://www.cnblogs.com/alabo1999/p/14990310.html (正好找到这一篇足够详细,估计我也不会再多写了)
 
 

小型 vue2项目快速升级到 Vue3的小踩坑

1、参考官方文档,将一些不用的 filters ,等去掉

2、将原来的全局变量挂载,尽量去掉,用的时候 再加载好了,现代 IDE 基本上都会在你用的时候 自动加载进来
3、如果不使用 compositionAPI,基本上就是原来的代码不变
4、layout 写在 router 里比写在页面里方便 (如果是基于 inertiaJS 的 laravel 项目,当我没说)
5、用了 vite 后,原来的 process.env,要使用 import.meta.env来获取,import.meta.env,只认 VITE_开头的变量
6、用 autoImport/unplugin 后确实方便很多,但如果用了 element-plus 又用了 tailwindcss,要注意引入的顺序,否则象 button 上的样式可能会被覆盖
 

electron 打包注意事项(一)

 由于打包教程网上很多,我就不多说了。只说自己踩的一些坑吧

1、builder.json 中。files 节点里的内容,就是最终打包进 APP 的资源。所以,想打包的话就在这里指定。可以是文件和目录
2、main.js 中,涉及到路径的,尽量使用 app.getAppPath(),网上一些教程都是 path(__dirname,'../dist/index.html')之类的,记得换成 app.getAppPath(),同时 ../dist,换成和 appPath 对应的目录
3、因为是用 vite 打包的。base 节点,原来默认都是 / ,electron的话,如果用 / ,就是绝对路径了。记得换成 ./  的相对路径
4、打包的项目中,尽量不要 出现:location.href ,所有的跳转都通过 router.push({path:"/xxx"})
5、router,如果原来是用 createWebHistory 的,记得使用 Hash 的方式
6、request 请求的时候 ,请带上 baseURL(正确的 http 路径)。因为在 development 模式下,有 proxy 的时候 都是通过代理 访问,路径往往实际并不带域名。
7、js-cookie 这样的 cookie 操作类应该是没法用了,改换成 localStorage 吧。
---
先想到这么多记录一下,如果后续再想到,就继续开新篇记录
 
Records:30512345678910»