跳至主要內容

@babel/plugin-proposal-pipeline-operator

安裝

npm install --save-dev @babel/plugin-proposal-pipeline-operator

用法

管道運算子有幾個競爭提案。使用必要的 "proposal" 選項設定要使用的提案。其預設值為 "hack"

提案新增版本
"hack"Hack 風格管道v7.15.0
"fsharp"F#-style 管道,帶有 awaitv7.5.0
"minimal"最小 F#-style 管道v7.0.0
"smart"Smart-mix 管道(已棄用)v7.3.0

如果省略 "proposal",或使用 "proposal": "hack",則必須包含 "topicToken" 選項。topicToken 必須是 "%""^^""@@""^""#" 之一。

"proposal": "minimal""fsharp""smart" 選項已棄用,並可能在未來的主要版本中移除。

範例

下列範例使用 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(^^);

來自 jquery/src/core/init.js

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(^^);

(有關已棄用提案模式行為的摘要,請參閱 管道 wiki 的先前提案表格。)

使用 ^^ 主題令牌

babel.config.json
{
"plugins": [
["@babel/plugin-proposal-pipeline-operator", { "topicToken": "^^" }]
]
}

使用 @@ 主題令牌

babel.config.json
{
"plugins": [
["@babel/plugin-proposal-pipeline-operator", { "topicToken": "@@" }]
]
}

透過 CLI

由於這個外掛程式需要設定選項,因此它無法直接從 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: "@@" } ],
],
});