Bringing it all together

With all the components introduced, we can use the template structure for our module development:

  • ModuleName\Public
    • Contains all publicly visible module functions
    • Each function is in a separate script, called NameOfFunction.ps1
  • ModuleName\Private
    • Contains all internally visible functions
    • Each function is in a separate script, called NameOfFunction.ps1
  • ModuleName\Types
    • Contains all .NET/PowerShell classes the module requires
  • ModuleName\ModuleName.psm1
    • Your script module
  • ModuleName\ModuleName.psd1
    • Your module manifest
  • Test
    • Contains all unit and integration tests to execute, possibly sorted into subfolders
    • Usually one *.Test.ps1 file per function
  • ModuleName.psdeploy.ps1
  • appveyor.yml
  • build.ps1
  • psake.ps1 ...

Get Learn PowerShell Core 6.0 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.