能否在NodeJS环境的NX单仓项目中调用并运行Deno脚本?
1. Deno脚本是否可以存放在NX的lib目录下
可以。NX的lib目录是monorepo中用于管理各类可复用模块的通用目录,没有强制限制仅能存放Node生态代码。你可以在lib下单独新建子目录存放Deno脚本,比如lib/deno-scripts,单独维护该目录下的Deno配置(如deno.jsonc)即可,和同目录下的React组件库互不冲突。
2. 从现有Node类库中调用独立Deno脚本是否可行
可行。Deno是独立运行时,本身以可执行程序的形式存在,你不需要把它集成进Node应用内部,只需要在Node项目的执行逻辑中触发Deno进程、传入目标脚本路径即可完成调用,比如在React组件库的package.json中新增脚本命令直接调用deno run <脚本路径>,只要执行环境存在Deno可执行文件就能正常运行。
3. Deno的分发定位相关说明
Deno是通用JavaScript/TypeScript运行时,服务端、工具链、本地脚本等场景都可使用,并非仅面向服务端场景。但纯Deno应用默认使用自身的依赖管理逻辑,和Node的npm依赖体系不兼容,所以确实很少作为依赖被引入前端项目,大多以独立工具的形式全局安装,或是直接部署在服务端运行。
4. 通过deno-bin依赖实现脚本调用的方案是否可行
可行。deno-bin是封装了Deno可执行文件的npm包,你可以将它作为devDependency引入monorepo根目录或是对应React组件库的package.json中,依赖安装完成后,deno命令会自动注册到当前项目的npm脚本执行环境中。其他开发者拉取monorepo代码、安装完依赖后,不需要全局安装Deno,就能直接通过CLI调用你存放在lib目录下的Deno脚本,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Esten

