2 个不稳定版本

0.2.0 2020年9月28日
0.1.0 2020年8月28日

#2119解析实现

MITGPL-3.0-only

31KB
656

esbuild-config

esbuild 的配置文件。

为什么?

esbuild 是一个令人难以置信的工具,它使用命令行参数作为配置语法。[...]

一种解决方案可以是运行 esbuild 通过其 Node.js API,并使用 JS 作为配置文件。[...]

const { build } = require('esbuild')

build({
  entryPoints: ['./index.js'],
  outfile: './bundle.js',
  external: ['react', 'react-dom'],
  loader: { '.js': 'jsx', '.png': 'base64' },
  minify: true,
}).catch((error) => {
  console.error(error)
  process.exit(1)
})

这是使用配置文件与 esbuild 的推荐方式,如果您这样做,[...]

esbuild-config 提供了一种配置 esbuild 的替代方法。它不是通过 Node.js 使用 esbuild API,而是将配置文件转换为命令行参数,这些参数可以直接传递给 esbuild 二进制文件。[...]

用法

esbuild-config 命令根据 esbuild.config.json 文件输出参数列表,该列表可以直接传递给 esbuild

esbuild $(esbuild-config)

它检测当前目录或项目根目录中是否存在 esbuild.config.json 文件(使用 package.json 文件的存在性)。相同的配置格式也可以在 package.json 文件中定义,使用 esbuild 字段.json` 文件。

也可以将特定的文件路径作为参数传递

esbuild $(esbuild-config ./my-conf.json)

语法

esbuild-config 不会对配置值进行任何验证:它只将 JSON 类型转换为与 esbuild 使用其参数的格式兼容的参数。这使得它与 esbuild 版本无关,假设格式没有改变。

唯一例外是 entry 字段,它被转换为文件名列表(当提供数组时)或单个文件名(当提供字符串时)。

以下是 JSON 类型如何被转换

{
  "entry": "./index.js",
  "outfile": "./bundle.js",
  "external": ["react", "react-dom"],
  "loader": { ".js": "jsx", ".png": "base64" },
  "minify": true
}

输出

--outfile=./bundle.js --minify --external:react --external:react-dom --loader:.js=jsx --loader:.png=base64 ./index.js

请注意,条目 ./index.js 已被移动到末尾。esbuild-config 也会根据需要处理参数的转义(例如,通过添加引号)。

安装

npm

通过 npm 安装 esbuild-config 是最简单的方法。

使用以下命令全局安装

npm install --global esbuild-config

或将它添加到您的项目中

npm install --save-dev esbuild-config

有关替代安装方法,请参阅以下内容 [链接]

二进制文件

您可以从发布页面下载预编译的二进制文件。

Cargo

使用以下命令通过 Cargo 安装

cargo install esbuild-config

从源代码

要克隆存储库并构建 esbuild-config,请运行以下命令(在安装 Rust 后运行)([链接]

git clone [email protected]:bpierre/esbuild-config.git
cd esbuild-config
cargo build --release

编译后的二进制文件位于 target/release/esbuild-config

贡献

# Run the app
cargo run

# Run the tests
cargo test

# Generate the code coverage report (install cargo-tarpaulin first)
cargo tarpaulin -o Html

特别感谢

显然,首先是 esbuild 和它的作者,不仅因为 esbuild 本身,也因为其通过 npm 安装特定平台的二进制文件 的方法,这也是 esbuild-config 所使用的。

许可证

MIT

依赖

~0.9–1.3MB
~26K SLoC