【问题标题】:Angular 2 MVC based project with VS 2017 and TFS build server offline (without internet and npm)基于 Angular 2 MVC 的项目,带有 VS 2017 和 TFS 离线构建服务器(没有互联网和 npm)
【发布时间】:2017-09-11 10:08:22
【问题描述】:

最终目标是使用我们的基础架构设置 Angular 2 应用,以便我们的开发团队可以使用它并将其交付到生产环境中。

有几个(或更多)主题,似乎与此类似,但我们无法找到解决我们面临的一些问题的解决方案......需要明确的是,在过去的两周里,我们已经一直在寻找这些解决方案,但没有成功。

希望这次讨论对我们和其他许多人有所帮助。

到目前为止:

  • 获得angular 2 started kit 使用个人计算机(我们的 DEV 环境离线)能够运行 npm-install

  • 创建了一个 MVC 项目来托管 Angular 2 应用程序

  • 将 Angular 2 入门套件(包括 node_modules 文件夹)导入 DEV 环境并将其集成到 MVC 应用程序中

** node_modules 文件夹不包含在项目中,而是手动放置在它的根目录中。

目前我们面临两个主要问题:

  • 我们不能将 node_modules 文件夹(来自该特定工具包和其他一些工具包)包含到项目中,因为之后会出现构建失败。所以我们的团队只好一个一个地复制,手动放到项目文件夹的根目录下(女巫不对)。

  • node_modules 文件夹很大(有数千个文件)。对于 DEV 环境来说这很好,但所有这些文件都应该投入生产是没有意义的。有一些关于 Angular CLI 的主题,但我们没有找到如何将它实现到 TFS 构建服务器中。

我们正在使用:

  • VS 2017 作为 IDE

  • TFS 作为源代码管理

  • TFS 构建服务器

  • 我们也将 TFS 用于 CI/CD(分支、自动构建、半自动部署)

问题:

  1. 我们需要一个 angular 2 套件(包括 node_modules 文件夹),它可以包含在 TFS 项目中,不会导致构建失败。

  2. 考虑到我们正在使用的技术,如何实现 Angular CLI?

【问题讨论】:

  • 如果将 node_modules 文件夹包含到 TFS 项目中会出现什么样的故障?
  • @Andy-MSFT 不幸的是,包含该文件夹需要很长时间,它会完全冻结 VS,然后将其崩溃...失败是因为其中一个依赖项的 package.json模块。一些.ts 文件是必需的,但它们没有出现(stackoverflow 上有一些关于它的主题)。但是,即使我评论了那些(这可能根本不是一个好主意),构建开始失败,因为字符串和数字之间的某些模块依赖关系不匹配(没有找到任何关于此的内容)......所以这可能入门工具包不是 VS 实现的最佳主意。

标签: angular tfs npm tfsbuild offline


【解决方案1】:

我强烈建议您不要依赖 TFS Build 来恢复 npm 包。即使你做对了,它也需要很长时间并且不会将你需要的 node_modules 部署到 IIS。

相反,使用 WebPack 将您的 node_modules 捆绑到 bundle.js 中。在您的项目/脚本文件夹中引用它并将其签入源代码管理。

删除构建过程中的所有 npm install 步骤(不再需要它,因为您现在引用的是 bundle.js)。

这将提高您的质量(没有未来的软件包版本惊喜),并加快您的部署(不再需要在每次构建时下载 npm 软件包)。

安装 Webpack 相当快,而且不会让您头疼。

【讨论】:

  • 我遇到了同样的问题,我认为这条建议值得称赞!
猜你喜欢
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2019-01-11
相关资源
最近更新 更多