5/6 都是集成一些前端的东西
各家似乎一直都在去 Webpack 化。隔壁 Phoenix 刚从 Brunch 转向 Webpack 没多久,下个版本 1.6 就已经确定梭哈 esbuild 了;Rails 未来风向更狠,Rails 7 应该是直接用 import maps(看 DHH 最近的动向是这样),还鼓励用 Skypack 这样的 CDN。可怜 Webpacker 还没捂热乎就无了(也不算吧),我还用了 Webpacker 的 Beta 好长一段时间呢。
dhh 的方式我跟着他的方式试了下,有几个问题,一个是 cdn,国内没啥稳定的,另一个是生产下 js 最后不会压缩,我现在用的 vite 感觉还行,起码挺快的
我也觉得一步跨越到 import maps 有些激进了。隔壁 Phoenix 起码还有个“为了不产生不被 Erlang 掌控的进程”和“减少一个 Nodejs 依赖”的额外理由在,另外 Cowboy 很早很早就支持了 HTTP 2,不打包也没啥事反正能主动 push,甚至于 Phoenix 社区都不太喜欢用 Nginx 当静态服务。
Rails 又没啥工具链的进程洁癖,没有理由为了省依赖去掉 Webpacker 和 Nodejs。或许是觉得 Puma 还停留在 HTTP 1.1,用 No Bundle 方案不太好?
刚看到 Phoenix 1.6.0-rc.0 发布了,我中间试过几次 Phoenix,感觉挺爽的,不过还是习惯了 rails 的一套,import maps 也不是不行,好处是 rails engine 中的 asset 处理又方便了,今天看已经合进 main 分支了,不过我估计是不会用
过去为了优化前端的加载速度,大家会把把很多小 javascript 打包为一个大文件。
HTTP/2 支持多路复用,这让过去的最佳实践变的没有意义。这是大家去掉 webpack 的原因之一吗?
我观望中,暂时还是用 webpacker 方案。个人感觉 webpack 5.0 还是 JS 世界的王者,Rails 一向是标新立异的,官方推 import map 也可以理解。
学前端直接入 Next.js 啊,结合国内情况,考虑到小程序之类的支持,Rails 只提供 API 也还好啦。完美的前后端同构方案我目前是还没了解到。
https://github.com/huaize2020/awesome-nodejs 其他语言中一个函数调用叫 api 在 nodejs 里面叫 package