Лучший способ импортировать пакеты Javascript в основное приложение.NET

Я новичок в.NET Core Framework и в настоящее время настраиваю панель управления, которая использует страницы Razor и некоторые взаимодействия JavaScript. Для нескольких примеров проектов, которые я создал, ни один из них не шел с менеджером пакетов с самого начала, который необходим для поддержания поддержки приложения. Исходя из Node.js и фона Ruby on Rails, моим решением по умолчанию является NPM (или Yarn, если хотите).

Однако я заметил, что Microsoft исключила Node из своих базовых образов Docker для.Net около 2 лет назад (см. Здесь: https://github.com/aspnet/Announcements/issues/298).

Это привело меня к сомнению в моем решении использовать NPM, и я стал искать альтернативы. Я обнаружил, что вы можете установить библиотеки Javascript, обернув их в пакеты Nuget и установив их через Nuget. Но я не решаюсь идти по этому пути, так как я видел этот паттерн, вызывающий проблемы в Ruby on Rails. Он добавляет дополнительный уровень обслуживания и часто рубиновые самоцветы, которые больше не поддерживаются, а это означает, что вы не можете перейти на новейшие версии.

Затем у нас есть Libman, который интегрирован в Visual Studio ( https://docs.microsoft.com/en-us/aspnet/core/client-side/libman/libman-vs?view=aspnetcore-2.2) и рисует пакеты из https://cdnjs.com/, который, как я считаю, содержит меньше пакетов (но, по мнению Microsoft, есть все, что вам нужно). Но их собственный блог ( https://devblogs.microsoft.com/aspnet/library-manager-client-side-content-manager-for-web-apps/) говорит:

LibMan не является системой управления пакетами. Если вы счастливо используете npm/yarn/(или что-то еще), мы рекомендуем вам продолжать это делать. LibMan не был разработан в качестве замены для этих инструментов. Например, шаблоны SPA (т. Е. Angular и React), которые мы поставляем для ASP.NET Core, зависят от npm и WebPack, и у нас нет планов по их изменению.

Тогда мы остаемся с Бауэром, который больше не вариант, с https://bower.io/:

... Psst! Несмотря на то, что Bower поддерживается, мы рекомендуем использовать Yarn и Webpack или Parcel для проектов переднего плана, читайте как перенести!

Поэтому мне интересно, для монолитного приложения, является ли NPM или Yarn правильным выбором, и если да, то почему Microsoft решила исключить Node из своих базовых образов?

0 ответов

Вы упомянули LibMan, который отлично работает, но вам нужно настроить его для загрузки пакетов из unpkg, который является CDN для NPM и должен содержать все, что вы можете найти в npm.

Другие вопросы по тегам