首页 > 其他分享 >[Babel] Intro Babel - 03. CLI

[Babel] Intro Babel - 03. CLI

时间:2025-01-16 20:54:55浏览次数:1  
标签:CLI script -- Babel js Intro file babel out

CLI

关于 babel 所提供的 CLI,你可以在 https://babeljs.io/docs/babel-cli 看到所有所支持的 CLI 命令。

要使用 CLI 命令,首先第一步是安装:

pnpm add --save-dev @babel/core @babel/cli

注意在安装 @babel/cli 这个包的时候,需要同时安装 @babel/core 这个包,这个包是提供 babel 核心 API 的。CLI 背后实际上就是使用的 API 来实现的。

编译文件相关的 CLI

在使用 babel 的 CLI 命令的时候,有一个基本的格式:

babel [file | dir | glob] --out-[file | dir]

如果你没有指定 --out,那么 babel 会将编译后的结果输出到控制台。

常见的格式如下:

# 编译结果输出到控制台
babel script.js 
# 编译结果输出到指定文件
babel script.js --out-file script-compiled.js 
# 编译整个目录到指定目录下
babel src --out-dir lib
# 编译整个目录下的文件,输出到一个文件里面
babel src --out-file script-compiled.js
# 监视文件,当文件发生变化时自动重新编译
babel script.js --watch --out-file script-compiled.js 

我们在进行编译的时候,可以指定是否要生成 source map:

babel script.js --out-file script-compiled.js --source-maps
babel script.js --out-file script-compiled.js --source-maps inline

忽略文件和拷贝文件

有些时候我们在进行编译的时候,想要忽略某些文件

# 忽略 src 目录下面的所有测试文件
babel src --out-dir lib --ignore "src/**/*.spec.js","src/**/*.test.js"

有些文件我们想要原封不动的进行拷贝,不需要 babel 进行编译

# 将 src 目录下的文件原封不动的复制到 lib 目录下
babel src --out-dir lib --copy-files 
# 进行拷贝的时候忽略文件中匹配的文件不要拷贝
babel src --out-dir lib --copy-files --no-copy-ignored

使用插件和预设

在 CLI 命令行里面也是可以指定插件和预设的

# 指定插件
babel script.js --out-file script-compiled.js --plugins=@babel/transform-class-properties,@babel/transform-modules-amd
# 指定预设
babel script.js --out-file script-compiled.js --presets=@babel/preset-env,@babel/flow

使用配置文件

通过 --config-file 可以指定配置文件的位置

babel --config-file /path/to/my/babel.config.json --out-dir dist ./src

如果想要忽略已经有了的配置文件中的配置,可以使用 --no-babelrc

babel --no-babelrc script.js --out-file script-compiled.js --presets=@babel/preset-env,@babel/preset-react

.bablerc


{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "edge": "17",
          "firefox": "60",
          "chrome": "67",
          "safari": "11.1"
        },
        "useBuiltIns": "usage",
        "corejs": "3.6.5"
      }
    ]
  ],
  "plugins": []
}

标签:CLI,script,--,Babel,js,Intro,file,babel,out
From: https://www.cnblogs.com/Answer1215/p/18675741

相关文章

  • Babel Intro Babel - 01 Introduction
    Babel介绍Babel是一个编译器,主要用于将最新的JavaScript代码转化为向后兼容的代码,以便在老版本的浏览器或环境中运行。例如,你可能在开发时使用了ES6、ES7或者更高级的JavaScript特性,但是有些浏览器可能并不支持这些新特性,这时就可以用Babel来将代码转化为ES5或者更早......
  • doris&clickhouse&spark的元数据解析
    1.元数据的核心作用-数据目录管理-权限管理-分片信息-版本控制-资源调度2.基本组成部分-表结构定义-分区信息-统计信息-依赖关系-访问控制3.各系统的特点Doris:-FE管理的表定义、分区等-分布式事务相关元数据ClickHouse:-ZK存储的集群......
  • cliproxy海外 IP 的应用场景
    在当今全球化与数字化深度交织的时代,海外IP扮演着愈发关键的角色,其应用场景广泛地渗透到诸多领域,为个人、企业乃至科研机构开辟了新的发展路径。一、跨境电商运营对于跨境电商从业者而言,海外IP堪称业务拓展的得力助手。一方面,在店铺注册环节,部分海外电商平台基于地域限制......
  • docker 部署clickhouse
    clickhouse部署mkdir-p/home/data/clickhouse/datamkdir-p/home/data/clickhouse/confmkdir-p/home/data/clickhouse/logmkdir-p/home/data/clickhouse/client-confchmod-R777/home/data/clickhouse/dockerrun--rm-d--name=clickhouse--ulimitnofile=262144:2......
  • keycloak~巧用client-scope实现token字段和userinfo接口的授权
    keycloak中的client-scope允许你为每个客户端分配scope,而scope就是授权范围,它直接影响了token中的内容,及userinfo端点可以获取到的用户信息,这块我们可以通过自定义scope/mapper,来实现粒度的控制,并且这个mapper可以控制添加到token,或者添加到userinfo端点,这两块配置也是独立的,下面......
  • Cline 免费插件 + Qwen2.5 大模型,零经验也能开发“对联王”微信小程序
    小朋友即将放寒假了,意味着春节就不远了。在我们湖北老家,当我还是学生的时候,每年临近春节,写春联、贴春联和对春联是读书人一件乐事。如今,老牛同学早已不是读书人,但还是怀念那时快乐时光,因此想在春节前撸一个“对联王”微信小程序,专门用于创作春联和对春联。上次零经验的我们,借助......
  • zenoh client 以及peer 对于存储插件的支持配置说明
    以前说过从1.0.0开始zenoh支持对于存储插件的配置,但是会有一些要求,就是timestamping必须开启client以及peer支持存储插件配置参考配置"mode":"client"|"peer","timestamping":{"enabled":{"router":true,"peer":......
  • docker安装eclipse-mosquito测试mqtt
    拉取镜像dockerpulleclipse-mosquitto创建目录mkdirmqttcdmqttmkdirconfigmkdirdatamkdirlog创建配置文件cdmqtt/configtouchmosquitto.conftouchpasswdvimmosquitto.conf点击查看代码listener1883persistencetruepersistence_location/mo......
  • C# .NetCore HttpClient 标题名称 Content-Type、content-md5、Accept误用 确保请求头
    异常消息:        异常1、Misusedheadername,'Content-Type'.MakesurerequestheadersareusedwithHttpRequestMessage,responseheaderswithHttpResponseMessage,andcontentheaderswithHttpContentobjects        大概意思:标题名称“Cont......
  • GIS中“裁剪”(Clip)和“掩膜”(Mask)的区别详解
    在GIS中,“裁剪”(Clip)和“掩膜”(Mask)都是空间分析中的常见操作,它们都涉及到从一个数据集中提取特定区域的数据,但两者的目的和使用方式有所不同。下面我会详细讲解它们的区别,并结合具体示例加以说明。1.裁剪(Clip)定义:裁剪操作指的是利用一个边界(通常是一个多边形)将另一个数......