在 Node.js 生态中,直接运行 TypeScript 文件一直是开发者提升开发体验的刚需。近期,一款名为 @poppinss/ts-exec 的工具因其独特的设计理念引起了关注。
ts-exec:面向生产环境的 TypeScript 即时执行方案
@poppinss/ts-exec 是一个基于高性能编译器 SWC 构建的轻量级工具。它专为 Node.js 24 及以上版本设计,支持直接运行 .ts 和 .tsx 文件,无需任何预编译步骤。其核心优势在于严格的生产环境兼容性设计。
与 ts-node(已停止维护)或 tsx(可能存在生产环境兼容风险)等方案不同,ts-exec 的核心设计原则是确保开发时(直接运行 .ts 文件)与编译后(运行 .js 文件)的代码行为完全一致。它通过严格遵循 Node.js 原生的模块解析规则来实现这一点,避免了无扩展名导入、目录导入等可能导致开发与生产环境行为差异的问题。同时,它提供了对完整 TypeScript 特性(包括枚举、传统装饰器、JSX 等)以及原生 ESM 模块的支持,并且实现了开箱即用的零配置体验。
强化 npm 发布与认证安全
近期,npm 生态系统发生了几项重要的安全更新,旨在从发布流程和认证层面加固整个生态。
1. 个人项目的发布安全实践
针对 npm 上频繁出现的恶意脚本、钓鱼盗取令牌等安全事件,有开发者分享了一套为关键项目打造的 npm 发布防护方案。该方案的核心是禁用传统的 npm 令牌,转而采用更安全的“可信发布者(OIDC)”机制。此机制与 GitHub Actions 等 CI/CD 工作流深度集成,实现了发布流程的自动化与安全化。此外,方案还建议全量启用 GitHub 和 npm 账户的二次验证(2FA)、定期清理冗余的项目权限、规范依赖安装命令(避免使用有潜在风险的 npm i -g 或 sudo)等。这些措施无需引入额外工具,能有效提升 发布流程的安全水位。
2. npm 官方的认证体系升级
2025年12月9日,npm 官方正式完成了经典令牌(classic tokens)的淘汰工作,并推出了一系列安全更新:
npm login 变更:现在执行 npm login 命令将发放一个有效期仅为2小时的会话令牌。进行发布(npm publish)等敏感操作时,必须通过2FA验证。
- 精细化令牌管理:引入了新的 CLI 工具,支持创建和管理权限范围明确的精细化令牌,便于在 CI/CD 等自动化场景中使用。
- 新包强制2FA:所有新创建的 npm 包将默认要求维护者启用2FA。
对于原先使用经典令牌的用户,需要根据场景迁移:本地开发可通过新的 npm login 流程获取会话令牌;CI/CD 工作流则需要创建新的精细化令牌或配置 OIDC 可信发布。npm 也暂时恢复了部分旧版 API 以平稳过渡,但未来会彻底移除。这些举措整体强化了 npm 的认证安全,同时尽力保障开发者现有工作流不受过大影响。
|