@babel/插件提案管道运算符
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
安装
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-proposal-pipeline-operator
yarn add --dev @babel/plugin-proposal-pipeline-operator
pnpm add --save-dev @babel/plugin-proposal-pipeline-operator
bun add --dev @babel/plugin-proposal-pipeline-operator
用法
管道运算符存在多个相互竞争的提案。
请通过必需的 "proposal" 选项配置要使用的提案类型,
其默认值为 "hack"。
| 值 | 提案 | 添加版本 |
|---|---|---|
"hack" | Hack 风格管道 | v7.15.0 |
"fsharp" | 支持 await 的 F# 风格管道 | v7.5.0 |
"minimal" | 精简版 F# 风格管道 | v7.0.0 |
"smart" | 智能混合管道 (已弃用) | v7.3.0 |
若省略 "proposal" 选项或使用 "proposal": "hack",
则必须包含 "topicToken" 选项。topicToken 的值必须是 "%"、"^^"、"@@"、"^" 或 "#" 之一。
"proposal": "minimal" 和 "smart" 选项已弃用,并将在 Babel 8 中被移除。
示例
以下示例均使用 topicToken: "^^" 配置。
摘自 react/scripts/jest/jest-cli.js。
JavaScript
// Status quo
console.log(
chalk.dim(
`$ ${Object.keys(envars)
.map(envar => `${envar}=${envars[envar]}`)
.join(' ')}`,
'node',
args.join(' ')
)
);
// With pipes
Object.keys(envars)
.map(envar => `${envar}=${envars[envar]}`)
.join(' ')
|> `$ ${^^}`
|> chalk.dim(^^, 'node', args.join(' '))
|> console.log(^^);
JavaScript
// Status quo
jQuery.merge( this, jQuery.parseHTML(
match[ 1 ],
context && context.nodeType ? context.ownerDocument || context : document,
true
) );
// With pipes
context
|> (^^ && ^^.nodeType ? ^^.ownerDocument || ^^ : document)
|> jQuery.parseHTML(match[1], ^^, true)
|> jQuery.merge(^^);
(有关已弃用提案模式的行为摘要,请参阅管道提案维基的先前提案表格。)
使用配置文件(推荐方式)
使用 ^^ 主题标记:
babel.config.json
{
"plugins": [
["@babel/plugin-proposal-pipeline-operator", { "topicToken": "^^" }]
]
}
使用 @@ 主题标记:
babel.config.json
{
"plugins": [
["@babel/plugin-proposal-pipeline-operator", { "topicToken": "@@" }]
]
}
通过命令行
由于此插件需要配置选项,因此无法直接从 CLI 配置。请改用配置文件配合 CLI 来添加和配置此插件。
通过 Node API
使用 ^^ 主题标记:
JavaScript
require("@babel/core").transformSync("code", {
plugins: [
[ "@babel/plugin-proposal-pipeline-operator", { topicToken: "^^" } ],
],
});
使用 @@ 主题标记:
JavaScript
require("@babel/core").transformSync("code", {
plugins: [
[ "@babel/plugin-proposal-pipeline-operator", { topicToken: "@@" } ],
],
});