What should be stored in source control for an Asp.Net Core MVC application?
使用新的 Asp.net Core MVC 项目,例如:
那里有很多不熟悉的文件夹,例如bower_components、wwwroot、Dependencies等。
源代码管理中应该存储什么?
- 您没有提到您正在使用哪个源代码控制,但有一个用于 Visual Studio 的 .gitignore 与要忽略的标准内容保持同步(即使在 VS 2015/.NET Core/DNX 中也是如此)。您可以随时调整它以适应您使用的任何源代码控制。
任何项目设置或您直接更改的内容都应存储。任何直接下载的内容(引用、bower/node)或直接基于这些内容(lib 文件夹被 gulp 复制)都应该被忽略。
因此,在您的情况下,请忽略 bower、node 和 project\\\\\\\\wwwroot\\\\\\\\lib。如果您有自定义 css 或 js,则需要 wwwroot 文件夹。
我和
一起去了
(绿色为是,红色为否)
唯一未列出的例外是 .xproj(对于 TFS 是 .xproj.vspscc)。
我从本地工作区中删除了该文件夹(在备份到其他地方之后)并从源代码管理中恢复,一旦所有软件包都自行恢复,一切似乎都正常运行。
这假定 gulpfile.js 配置为将所需的 css、js、font 组件移动到 wwwroot。
另外,因为我写了这个,在 properties 文件夹中有一个 launchSettings.json 我已经控制了源代码(不知道为什么它只是刚刚生成)。
我的 .tfsignore 文件当前是:
1 2 3 4 5
| project\\wwwroot
!project\\wwwroot\\web.config
project\
ode_modules
project\\bower_components |
(目前看来还可以,但如果添加其他静态资源,例如 JS、CSS 和图像,可能会发生变化。)
- 您不应该忽略 wwwroot,因为它还包含您的自定义图像、CSS 和 JavaScript 文件;)
-
@JuergenGutsch 我认为这个想法是使用 gulpfile.js 将任何自定义 CSS / JS 移动到适当的包中?
-
是的,但是 gulp(甚至咕噜声)这完全独立于 wwwroot。 gulp 检查 wwwroot 中的文件以对文件进行 uglify 和捆绑,但原始文件也位于 wwwroot 文件夹中。您需要将此文件提交到源代码管理,以便与团队中的任何其他开发人员共享您在此文件中的工作;)
-
@JuergenGutsch 有趣。我的目标是将 wwwroot 精简为仅包含其中发布的内容,当然我需要修改忽略以使其中没有图像。
-
可以将这些文件(图像、脚本和 css)放在 wwwroot 之外,但您需要确保这些文件最后在其中。这不会自动完成。表示"wwwroot"不是新的"bin",而是您的 Web 应用程序的根目录。
-
这有点离题(但非常有趣),但我的想法是对 CSS 使用某种预处理器 SASS,也许对 Js 使用 TypeScript,然后将结果放入 wwwroot 而不是将文件放在那里。我已经更新了答案以在其中包含更多通用图像/ js 细节。
-
两种选择: 1. 使用 gulp 将"编译"成 CSS 和 JavaScript,有可用的插件(编译时编译)。 2. 使用 vswebessentials.com 编辑 LESS、SASS、TS 并在保存时编译。