PowerShell .ps1 файл командлеты в модуле

Прямо сейчас у меня есть коллекция .ps1 Командлеты сценариев PowerShell (они могут принимать параметры), которые связаны друг с другом, но каждый из них достаточно сложен. Я хотел бы организовать их в модуль, желательно, сохраняя их в отдельных файлах.

Каков наилучший способ сделать это? Могу ли я хранить их в отдельных файлах.ps1 и использовать манифест модуля, чтобы сказать, что они являются частью модуля? Нужно ли ставить точки исходные файлы в .psm1файл для того, чтобы хранить файлы отдельно? Или неразумно разделять их на отдельные файлы?

1 ответ

Решение

В конечном итоге вам понадобится как минимум один файл.PSM1, содержащий либо определения переменных и функций, которые вы хотите экспортировать из вашего модуля, либо источники точек в этих определениях из файлов.PS1. По умолчанию переменные не экспортируются, пока экспортируются все функции. Если вы хотите изменить это поведение, используйте Export-ModuleMember -Variable MyExportedVariable -Function *-* в конце файла PSM1.

Если большая часть кода в ваших файлах PS1 является внутренней информацией о реализации, то лучше сохранить ее в файлах PS1. Просто помните, что PSM1 экспортирует "публичный" интерфейс вашего модуля.

Другие вопросы по тегам