包含多个文件的模块的最佳做法

时间:2017-08-21 12:57:58

标签: powershell

我已经收集并创建了很多我每天在工作中使用的Powershell功能。为了使维护和组织更容易,我创建了模块。每个模块都有自己的文件夹,里面有几个文件。每个文件都有一个或多个功能。

过去,我已经组织了这样的事情:

\Modules\
   \SystemTools\
      Hotfixes.psm1
      Services.psm1
      SystemTools.psd1
   \NetworkTools\
      ActiveDirectory.psm1
      Connections.psm1
      NetworkTools.psd1
每个psm1文件中带有Export-ModuleMember -Function

,清单(psd1)文件中的空RootModule行以及清单文件中NestedModules行上的所有psm1文件作为数组。

但我不确定它是如何使用的,以及是否遵循有关多个文件的模块的最佳做法。

所以我最近改变了我的模块文件夹:

\Modules\
   \SystemTools\
      Hotfixes.ps1
      Services.ps1
      SystemTools.psd1
      SystemTools.psm1
   \NetworkTools\
      ActiveDirectory.ps1
      Connections.ps1
      NetworkTools.psd1
      NetworkTools.psm1

所以我已经

  1. 将所有psm1文件重命名为ps1
  2. 添加了一个psm1文件,我点源同一个文件夹中的所有ps1文件
  3. 将psm1文件设置为RootModule,而不是NestedModules
  4. 问题

    1. 两者似乎都有效,但哪一个更好?
    2. 如果SystemTools模块中定义的函数需要使用NetworkTools模块中定义的函数,我应该使用Import-Module吗?是不是存在循环依赖的风险?

0 个答案:

没有答案