如何维护 JS 文件和视图等内容的一个副本



我的 ASP.Net 核心MVC项目由3个网站项目以及相关的单元测试项目组成,所有这些都收集在一个解决方案中。每个网站项目都依赖于常见的东西,例如JavaScript库(在wwwroot/js/...下(和视图(在views/...下(。是否有一些功能可以让我打包这些文件(据我所知,这些文件都不能存在于 NetStandard 库项目中(并将它们"安装"到我的所有网站项目中,这样我只需要在一个地方维护它们?

剃刀类库(RCL(几乎可以完成我想做的事情,但我希望能够从所有三个网站项目中的视图中引用我的JavaScript库。我还希望捆绑器/最小化器能够找到我常见的JavaScript和CSS文件。据我所知,RCL 只允许 RCL 中的 Razor 页面访问 RCL 中的静态内容(比如我的 JavaScript 和 CSS 文件(。

编辑:

经过更多的思考,我得出的结论是,我所要求的根本无法"开箱即用"。为了正常工作,调试器和打包器/最小化器需要在项目的目录树中查找 js 和 css 文件。我要求的是一种拥有包含这些"共享"文件的"参考项目"之类的方法。我认为是时候采用"科学项目"方法了:我将创建一个包含共享文件的参考项目,并运行一些代码(在构建时?通过 MSBuild?通过单元测试代码?(,如果它们不匹配,则从参考项目更新项目中的文件。

FWIW,这是我最终要做的事情:

在我的 3 个网站项目中,我在几个地方都有共同的文件:

  • 视图/共享
  • wwwroot/js/MyJsLibrary
  • wwwroot/css/MyCssLibrary

我创建了一个"参考"项目,其中包含这些文件夹中常见文件的副本。然后我创建了一个单元测试,它只是验证"参考"项目中的文件是否存在,并且与 3 个网站中的每个网站中的文件相同。

没有自动魔法来保持文件夹同步。如果有人更改了其中一个通用文件,则单元测试将失败,直到有人将更新的文件复制到网站项目和"参考"项目。

相关内容

最新更新