Как правильно использовать библиотеки JavaScript NuGet в проекте ASP.Net Core на примере MathJax? - PullRequest
1 голос
/ 29 марта 2019

Я установил библиотеку MathJax для своего сайта в ASP.Net Core из диспетчера пакетов.Я видел 'MathJax (2.7.0)' в зависимостях NuGet:

Изображение моих зависимостей

Но это все.Когда я вижу директорию wwwroot\lib в своем проекте, я не вижу папку 'MathJax' или что-то похожее в ней:

Изображение моей передней библиотеки lib

Но когда мне нужно использовать MathJax, мне нужно написать нечто подобное на моей html-странице:

<script type="text/javascript" async src="~lib/MathJax/MathJax.js?config=TeX-AMS_HTML-full"></script>

Я не могу скопировать библиотеку NuGet непосредственно в wwwroot\lib, потому что я не хочу добавлять в свой репозиторий git много файлов внешнего проекта (> 36 Мб,> 1500 файлов).Кроме того, зачем тогда использовать NuGet?Кроме того, я не могу добавить существующие элементы библиотеки MathJax NuGet вручную (меню Add -> Existing Item...), потому что их много, и абсолютный путь не будет правильно на другом ПК.

Как правильно получить ссылку на библиотеку MathJax в пакете NuGet?

Ответы [ 2 ]

2 голосов
/ 29 марта 2019

Пакеты NuGet библиотеки JavaScript / CSS не предназначены для Core. Они для MVC. В ASP.NET Core совершенно другой подход к статическим файлам и библиотекам на стороне клиента, чем в ASP.NET MVC.

Для основного сайта ASP.NET вам нужно использовать либо LibMan, либо npm, чтобы получить библиотеки на стороне клиента. LibMan проще, но также очень наивен и ограничен. В частности, он поддерживает только библиотеки, которые находятся на cdnjs. Несмотря на то, что здесь много информации, она не является исчерпывающей, и есть некоторые библиотеки, которые просто доступны. Я не уверен, является ли ваша конкретная библиотека или нет.

Однако, учитывая, что вам почти неизбежно понадобится что-то, чего вы не можете получить через LibMan, и затем вы все равно будете вынуждены использовать npm, вы можете просто использовать npm и привыкнуть к нему. Существует больше кривой обучения, потому что вам также необходимо создавать задачи сборки с помощью чего-то вроде Webpack, Gulp, Grunt и т. Д. Пакеты npm помещаются в папку node_modules, которая не должна обслуживаться напрямую. По крайней мере, вам нужно использовать Webpack, Gulp и т. Д., Чтобы скопировать dist / build пакета npm (то есть фактических файлов JS / CSS, на которые вы будете ссылаться) в каталог wwwroot/lib. Есть много руководств в Интернете о том, как это настроить. Просто проведите небольшое исследование.

0 голосов
/ 29 марта 2019

Перейдите в веб-проект, щелкните правой кнопкой мыши и перейдите к сценариям управления клиентом, затем найдите свою библиотеку и установите.

...