Modules
The next step, on your way to PowerShell mastery, is a solid understanding of what modules are, how they work, and why you need them in an enterprise environment.
Generally speaking, modules are packages for your functions. Think of a Java packages or a .NET namespaces as collections for classes, and so on. Modules can be very simple, and can quickly grow more complex with the more you add, such as help files, custom type extensions, formatting, unit tests, and ultimately, the integration into a release pipeline, which we will see in Chapter 11, VSCode and PowerShell Release Pipelines.
Module architecture
The anatomy of a PowerShell module is quite simple. There is a folder with the name of your module. Said folder contains at least a psm1
or a psd1
file that also has the name of your module. This folder is placed in one of the module locations in $env:PSModulePath
, and that's it; you're done.
Of course, there can be a little more to it, which you will discover when we talk about Just...