エンドユーザー向けのいくつかの関数と、関数によって呼び出されるがエンドユーザーによって呼び出されないいくつかの内部ヘルパー関数を持つモジュールxyがあります。
Get-Command -Module xy -CommandType function
モジュールフォルダにあるすべての機能を一覧表示します(例:get-foo
およびget-foo_helper
)
使用しているエンドユーザーからget-foo_helper
関数を非表示にする方法はありますか?
Get-Command -Module tcaps -CommandType function
私が行ったことの1つは、エクスポートする関数に動詞と名詞の命名規則を使用することですが、ヘルパー関数ではハイフンを省略します。
次に、export-modulemember *-*
エクスポートしたいものだけをエクスポートします。
モジュールの下部にExport-ModuleMemberを追加するだけです。
モジュールに次の関数があるとします。
New-Function0
New-Function1
New-Function2
New-HelperFunction0
モジュールファイルの最後に次の行を追加します。
Export-ModuleMember -function New-Function0
Export-ModuleMember -function New-Function1
Export-ModuleMember -function New-Function2
このモジュールでImport-Moduleを実行すると、Export-ModuleMemberで定義された関数のみがインポートされます。
ここで、New-Function1のエイリアスもエクスポートしたいとします。これをモジュールの最後に追加するだけです。
Export-ModuleMember -alias nf1
これで、Import-Moduleを使用すると、定義した関数と、New-Function1のエイリアス(nf1)が読み込まれます。
多くの場合、宣言された関数はスクリプトブロック(つまり無名関数)に置き換えることができます。
Export-ModuleMemberを使用するか、モジュールマニフェストを作成して、エクスポートされたコマンドを指定できます。 New-ModuleManifestを使用して、マニフェストファイルを作成できます。