如何将 `node_modules/` 下的 `bin/` 目录检查到 TFS 中?

How can I check `bin/` directories under `node_modules/` into TFS?

我在防火墙后面有一个 Team Foundation Build 服务器,我想签入与项目关联的 node_modules/ 目录(支持 Browserify 客户端应用程序和 Node 服务器应用程序),以便所有无需获取任何内容即可获得部署构建所需的文件和依赖项。

一开始将 node_modules/ 签入 TFS 似乎是可行的,只是出现在我的大约 20 个 NPM 依赖项中的 bin/ 目录没有签入。 bin/ 没有出现在我的 .tfignore(或我知道的任何其他地方可能会阻止签入)。

这些 bin/ 目录根本不会出现在团队资源管理器的 included/excluded 更改中。可以在 Windows Explorer 中找到这些文件夹之一并使用 TFS 上下文菜单添加它,但是对所有依赖项执行此操作将非常乏味且容易出错。

如何说服 TFS 检测这些文件夹中的更改?是否有一些我不知道的影响 included/excluded 更改的其他配置?

检查文件和 bin 文件夹是否会被 TFS 忽略。您可以尝试手动添加它们(例如拖动到源代码管理资源管理器)。如果不能,则必须与某些 .tfignore 设置相关,您可以仔细检查,例如项目文件夹级别的根目录中是否有 .tfignore 文件。

如果可以的话,您的工作区或 bin 文件夹的源代码管理映射可能有问题。尝试 remove the source control bindings 并重新绑定到 TFS。也尝试删除旧工作区并使用新工作区。

不建议将 "bin" 文件夹或 "node_modules" 文件夹上传到版本控制中。但如果您确实想这样做,请按照以下步骤操作:

  1. 转到 "C:\Users\youraccount\AppData\Local\Microsoft\Team Foundation\x.0\Configuration\VersionControl" 文件夹并打开 "LocalItemExclusions.config" 文件。 (可能有几个文件夹命名为1.0、2.0、3.0,您需要确保打开您的VS当前使用的文件夹。)

  2. 删除如下行并保存文件:

  <Exclusion>bin</Exclusion>
  <Exclusion>*.dll</Exclusion>
  1. 关闭Visual Studio.
  2. 删除 "node_modules" 文件夹。
  3. 重启Visual Studio.
  4. 运行 "npm install" 命令重新安装节点模块。
  5. 检查 "Pending Changes","bin" 文件夹中的文件应列在 "Excluded Changes" 部分。

你不应该登记入住 node_modules - 永远。

  1. 最好使用 browserify 或 WebPack(我推荐 WebPack)来打包你的 bundle.js。
  2. 将 bundle.js 添加到您的 source/scripts 文件夹。从你的 html 中引用你的 bundle.js 而不是任何 <../node_modules/../scripts>.
  3. 从构建脚本中删除 npm 安装。由于引用了您的 bundle.js
  4. ,您现在不需要它

WebPack 是一个开发步骤,但它可以保护您在开发过程中使用的包的版本,还可以让您在部署过程中免去 npm 安装的麻烦。