2 个不稳定版本
0.2.0 | 2020年9月28日 |
---|---|
0.1.0 | 2020年8月28日 |
#2119 在 解析实现
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 所使用的。
许可证
依赖
~0.9–1.3MB
~26K SLoC