PowerShell .ps1 файл командлеты в модуле
Прямо сейчас у меня есть коллекция .ps1
Командлеты сценариев PowerShell (они могут принимать параметры), которые связаны друг с другом, но каждый из них достаточно сложен. Я хотел бы организовать их в модуль, желательно, сохраняя их в отдельных файлах.
Каков наилучший способ сделать это? Могу ли я хранить их в отдельных файлах.ps1 и использовать манифест модуля, чтобы сказать, что они являются частью модуля? Нужно ли ставить точки исходные файлы в .psm1
файл для того, чтобы хранить файлы отдельно? Или неразумно разделять их на отдельные файлы?
1 ответ
В конечном итоге вам понадобится как минимум один файл.PSM1, содержащий либо определения переменных и функций, которые вы хотите экспортировать из вашего модуля, либо источники точек в этих определениях из файлов.PS1. По умолчанию переменные не экспортируются, пока экспортируются все функции. Если вы хотите изменить это поведение, используйте Export-ModuleMember -Variable MyExportedVariable -Function *-*
в конце файла PSM1.
Если большая часть кода в ваших файлах PS1 является внутренней информацией о реализации, то лучше сохранить ее в файлах PS1. Просто помните, что PSM1 экспортирует "публичный" интерфейс вашего модуля.