You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在基于Lerna搭建的Monorepo中运行babel-node?

在Lerna + Yarn Workspaces Monorepo中运行babel-node

嘿,我来帮你搞定这个问题!结合你当前的Lerna 2.9.0 + Yarn Workspaces配置,按照下面的步骤就能顺利运行babel-node:

1. 安装Babel相关依赖

首先在根目录安装所需的Babel开发依赖,这样所有子包都能共享这些工具:

yarn add -D @babel/core @babel/node @babel/preset-env

2. 配置Babel(适配Monorepo)

在根目录创建babel.config.json文件(这个配置会自动作用于所有工作区子包,比.babelrc更适合Monorepo场景),内容如下:

{
  "presets": [
    ["@babel/preset-env", {
      "targets": {
        "node": "current"
      }
    }]
  ]
}

这个配置会根据你当前的Node版本转译代码,适配性拉满。

3. 运行babel-node的两种方式

方式一:直接通过Lerna命令运行子包文件

如果你想直接运行@monorepo/server里的指定文件(比如src/index.js),可以执行这条命令:

yarn lerna exec --scope @monorepo/server -- babel-node src/index.js
  • --scope @monorepo/server:指定只在这个子包下执行命令
  • babel-node src/index.js:用babel-node运行目标文件

方式二:在根目录package.json中添加脚本(更便捷)

打开根目录的package.json,在scripts里新增一条命令:

{
  "scripts": {
    // 保留原有脚本...
    "server:dev": "lerna exec --scope @monorepo/server -- babel-node src/index.js"
  }
}

之后你只需要在终端执行:

yarn server:dev

就能一键启动用babel-node转译的server子包啦!

注意事项

  • 因为你开启了useWorkspaces,Yarn会统一管理依赖,根目录安装的Babel工具会被所有子包共享,不用在每个子包里重复安装。
  • 确保子包中你要运行的文件路径是正确的(比如上面例子中的src/index.js要真实存在于@monorepo/server包内)。

内容的提问来源于stack exchange,提问作者Mendes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:25:11