@babel/plugin-proposal-pipeline-operator
安裝
- npm
- Yarn
- pnpm
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
用法
管道運算子有幾個競爭提案。使用必要的 "proposal"
選項設定要使用的提案。其預設值為 "hack"
。
值 | 提案 | 新增版本 |
---|---|---|
"hack" | Hack 風格管道 | v7.15.0 |
"fsharp" | F#-style 管道,帶有 await | v7.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(^^);
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: "@@" } ],
],
});