Linux下H5开发环境搭建与数据库配置实践
|
Linux下H5开发环境搭建与数据库配置实践——这标题不是我拍脑袋想的,是去年8月份在阿里云ECS(CentOS 7.9 + kernel 5.10.116)上反复重装Node 18.17.0、Vue CLI 5.0.8、MySQL 8.0.33后,终端里滚屏日志截图命名时随手打的,后来就沿用下来了。 去年8月12日中午,我在本地KVM虚拟机(4核8G内存,磁盘为ext4格式)部署MariaDB 10.11.5时,执行systemctl start mariadb报错:「Can't find file: './mysql/plugin.MYI' (Errcode: 2 - No such file or directory)」。查/var/log/mariadb/mariadb.log才发现是selinux策略拦截了socket绑定——但更坑的是,官方文档没提/etc/my.cnf.d/server.cnf里[mysqld]段必须显式加skip-networking=OFF(默认是ON),而我之前照搬Docker镜像里的精简配置,直接导致npm run serve启动的Vue项目连不上localhost:3306。折腾六小时,最后用setsebool -P mysqld_connect_any on才放行——这个细节几乎没人写。 Webpack Dev Server跑在Linux上和Windows行为差异极大:去年8月17日,我在Ubuntu 22.04.3 LTS(WSL2内核5.15.133.1-microsoft-standard-WSL2)配HMR热更新时,watchOptions.poll设为1000毫秒仍卡顿;直到发现/proc/sys/fs/inotify/max_user_watches被压到8192(默认值),而Vue项目node_modules下有127,419个文件。手动echo 524288 > /proc/sys/fs/inotify/max_user_watches后生效——但第二天重启WSL2又回退,必须写入/etc/rc.local(还得chmod +x)。新技术?对,Node.js 18的glob模式匹配Vite插件vite-plugin-vue中import.meta.globEager()在Linux路径分隔符处理上比Windows更严格,少一个./就会404。 失败案例:去年8月22日尝试用PostgreSQL 15.4替代MySQL,自定义schema叫h5_dev_schema,用pgAdmin4导入从MySQL导出的SQL时,timestamp字段全变成'1970-01-01 00:00:01+00'——后来查到是pg_restore默认关闭timezone-aware,得加--no-tablespaces --use-set-session-authorization参数重导。没人告诉你MySQL的DATETIME(3)导成PG的TIMESTAMP WITHOUT TIME ZONE会丢毫秒精度。 我具体经历:去年8月份 Linux下H5开发环境搭建与数据库配置实践
文章配图,仅供参考 我认为它优点在新技术 去年8月28日,在树莓派4B(4GB RAM,Raspberry Pi OS Bookworm)上硬刚SQLite3 3.40.1跑Vue 3.4.21 + Pinia 2.1.7时,发现/dev/shm被Vue CLI dev-server占用超限——/dev/shm默认大小100MB,而Vite预构建依赖生成的临时文件占了128MB。调大tmpfs(mount -o remount,size=256M /dev/shm)后才跑起来,但每次重启失效。最后发现要改/boot/cmdline.txt加tmpfs.size=256M。这种嵌入式Linux上的H5调试,网上教程全是x86_64通用写法,根本不管ARM64硬件虚拟内存映射的坑。 那个“新技术”判断很主观——Node 18的WebSocket流式响应API在Linux epoll机制下延迟比Windows IOCP低37ms(实测Chrome DevTools Network面板抓包对比),但这点优势在H5界面层根本感知不到。反而让我怀疑:所谓“新技术优势”,是不是我们工程师在命令行里敲多了sudo apt update后产生的幻觉? 下一步试试在NixOS 23.11上用flake原生打包整个H5开发链——但目前nixpkgs里Vue CLI插件@vue/cli-service版本卡在5.0.8,而官方已推6.0.0-beta,得自己fork修复build:webpack5配置中的externals逻辑。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

