@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" | await を使用したF#スタイルのパイプ | v7.5.0 |
"minimal" | 最小限のF#スタイルのパイプ | 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: "@@" } ],
],
});