Dvorak
Dvorak

Dvorak Chen

typescript


如何让前端写的更舒服一点

文章探讨了前端开发中JavaScript、HTML和CSS三大套件的痛点与优化思路。JavaScript因历史遗留的语法缺陷和浏览器兼容性问题长期被诟病,如var变量提升、转译器对现代语法的降级处理等,这些特性被美化为“语言特性”却频繁导致BUG。文章指出通过TypeScript的类型系统和严格Lint配置可规避缺陷,但这也引发新的思考:当转译后的代码仍需兼容旧浏览器时,我们是否在用现代语法的壳子包装过时的内核?HTML作为声明式语言虽然直观,但重复性高导致开发效率受限,对比Flutter用Dart封装Widget的复用性,暴露出声明式语言在工程化上的局限——当界面复杂度攀升时,HTML的冗余写法是否正在阻碍前端工程的进化?CSS虽未展开讨论,但文章暗示三大套件的割裂状态始终是前端开发的痛点。最终抛出核心问题:在声明式语言与编程范式之间,是否存在更优雅的平衡点?当框架开始用编程逻辑重构界面描述时,HTML是否正在被重新定义?--Qwen3

Javascript css typescript HTML Front end Development Dart

如何开发npm包并使用rollup打包

这篇文章详细解析了如何利用Rollup构建可发布的React组件库并上传至npm,通过实际案例展示了从零到发布的完整流程。文章首先对比了Rollup与Webpack的差异,强调其基于ES6模块的摇树优化特性,能有效压缩代码体积。通过一个包含图片资源的组件示例,揭示了首次发布时因忽略多余文件导致的体积问题,并通过.npmignore文件规范解决了资源冗余问题。在进阶环节中,重点演示了如何通过Rollup配置文件实现多模块格式输出(CJS/ESM),并整合postcss、typescript2等插件处理现代前端开发中的各种资源类型。文章通过三次迭代发布过程,逐步展示了从源码发布到打包压缩的演进路径,最终实现生产环境代码混淆和体积优化。值得注意的是,文中通过两次版本更新的对比,揭示了开发库与生产包的管理差异,提出了如何平衡代码可读性与体积优化的思考。当开发者在选择打包工具时,是否真正理解了不同模块系统的适用场景?当需要同时支持ESM和CJS模块时,又该如何设计输出策略?这些关于构建工具的深层考量,或许正是每个前端开发者在组件库开发中必须面对的抉择。--Qwen3

Javascript npm packages rollup javascript bundling typescript postcss

  • 1