1

我是 .NET Core 框架的新手,目前正在设置一个使用 Razor 页面和一些 JavaScript 交互的仪表板。对于我创建的几个示例项目,它们都没有从一开始就带有包管理器,恕我直言,需要它来保持应用程序的可维护性。来自 Node.js 和 Ruby on Rails 背景,我的默认解决方案是 NPM(或 Yarn,如果你愿意的话)。

然而,我注意到微软在大约 2 年前从他们的 .Net 基础 Docker 镜像中排除了 Node(参见此处:https ://github.com/aspnet/Announcements/issues/298 )。

这导致我质疑我使用 NPM 的解决方案,然后我开始寻找替代方案。我发现您可以通过将 Javascript 库包装在 Nuget 包中并通过 Nuget 安装它们来安装它们。但是我很犹豫要不要走这条路,因为我已经看到这种模式导致 Ruby on Rails 出现问题。它增加了额外的维护层,通常是不再维护的 Ruby Gem,这意味着您无法迁移到最新版本。

然后我们有 Libman,它集成到 Visual Studio ( https://docs.microsoft.com/en-us/aspnet/core/client-side/libman/libman-vs?view=aspnetcore-2.2 ) 并从https://cdnjs.com,我相信它包含更少的包(但根据微软的说法,你需要的一切)。但是他们自己的博客(https://devblogs.microsoft.com/aspnet/library-manager-client-side-content-manager-for-web-apps/)说:

LibMan 不是一个包管理系统。如果您乐于使用 npm/yarn/(或其他),我们鼓励您继续这样做。LibMan 并不是作为这些工具的替代品而开发的。例如,我们为 ASP.NET Core 提供的 SPA 模板(即 Angular 和 React)依赖于 npm 和 WebPack,我们没有计划改变它。

然后我们离开了来自https://bower.io/的 Bower,它不再是一个选项:

...嘘!在维护 Bower 的同时,我们建议将 Yarn 和 Webpack 或 Parcel 用于前端项目,阅读如何迁移!

所以我想知道,对于单体应用程序,NPM 或 Yarn 是否仍然是正确的选择,如果是,微软为什么决定从他们的基础镜像中排除 Node?

4

1 回答 1

2

您提到了 LibMan,它工作得很好,但是您需要将其配置为从 unpkg 下载包,unpkg是 NPM 的 CDN,应该包含您可以在 npm 上找到的所有内容。

于 2020-11-22T19:31:53.910 回答