【问题标题】:How to prevent editing of generated Javascript files in a TypeScript project?如何防止在 TypeScript 项目中编辑生成的 Javascript 文件?
【发布时间】:2015-06-05 11:32:28
【问题描述】:

是否可以在 Visual Studio 2012 项目中强制执行阻止开发人员尝试直接编辑(出于偶然/旧习惯)由 TypeScript 文件生成的 JavaScript 文件的规则?

我有一个包含大量 TypeScript 文件的项目,这些文件又生成了许多必须包含在项目中的 JavaScript 文件。但是,我发现自己选择 JavaScript 文件是出于习惯,而不是选择 Typescript 版本的文件来进行编辑。我想防止这种情况。因为这些 TypeScript/JavaScript 文件是从其他地方链接进来的,所以我似乎无法嵌套它们。

该项目是一个带有 WinJS 的 Windows 应用商店应用程序。它包含三个不同的 Windows 应用商店项目和一组共享解决方案文件夹,其中包含大量 TypeScript/JavaScript 文件,这些文件使用项目文件中的以下语法链接到项目中:

<Content Include="..\Shared\**\*.*">
  <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

这允许我将共享目录和子目录中的所有文件作为自动链接文件包含在内。共享链接文件非常方便,但意味着我可以嵌套单个文件,因为递归文件链接会被破坏。

我的源代码控制是 git。所以我想可能有一个选项可以防止在 git 中编辑 .js 文件?寻找建议。

【问题讨论】:

标签: git visual-studio-2012 typescript


【解决方案1】:

我最近开始使用 Visual Studio 代码。在用户设置中,您可以完全隐藏 js 文件。

选择:

文件 |偏好 |用户设置

在右侧编辑器中添加以下内容(不能修改默认设置)。

"files.exclude": {
    "**/.git": true,
    "**/.DS_Store": true,
    "**/*.js": true,
    "**/*.js.map":true
}

我不确定您是否需要前两行,但它们是我刚刚复制过来的默认设置。显然,当您想再次查看 JavaScript 文件时,只需将 true 切换为 false。

【讨论】:

  • 这似乎是解决这种混乱的最有效的解决方法,直到实现嵌套,无论是作为扩展还是在基础中。虽然 .gitignore 非常适合与 git 交互,但这不会阻止您意外修改 .js 文件并破坏您的开发环境,即使只是在本地/临时。没错,您只需要再次打开并保存.ts,但很容易无意中做到这一点。虽然这种方法不是 100% 万无一失,但对我来说效果很好。
  • @EricLease 感谢您对 *.js.map 的提醒。我的项目中有这个,但忘记回到这里并将其添加到答案中。 +1 先生 :)
【解决方案2】:

我不确定是否有办法直接“阻止”编辑 JS 文件,因为它们在您的项目中。

例如,您可以使用 Gulp 来监视您的所有文件,并在 JS 文件发生修改时从其 TS 文件生成 JS 文件。

它并不完美,但它会阻止开发人员在 JS 文件中输入内容。

https://www.npmjs.com/package/gulp-watch

【讨论】:

    【解决方案3】:

    所以我想可能有一个选项可以防止在 git 中编辑 .js 文件?

    我们使用.gitignore 从存储库中排除 .js 文件。这些 js 文件作为构建/部署的一部分再次构建。

    这类似于在 git 存储库中不包含 *.exe / *.dll 文件的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 2022-10-17
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多