Actualmente estoy trabajando en una aplicación .NET core MVC conectada con hilo para agregar paquetes. Hasta ahora, he agregado el paquete Signalr de esta manera: yarn add @microsoft/signalr
Que agrega el paquete a /wwwroot/lib/@microsoft/signalr/etc..
Sin embargo, cuando trato de incluir el paquete en la aplicación web, se atasca. Lo incluyo así: <script src="lib/@microsoft/signalr/dist/browser/signalr.js"></script>
también <script src="lib/microsoft/signalr/dist/browser/signalr.js"></script> no funciona.
¿Alguien sabe cómo arreglar esto? No queremos cambiar a libman y preferimos seguir usando paquetes con Yarn.
¡Salud!
En primer lugar, debe saber que Yarn no instalará el paquete del lado del cliente en su wwwroot de forma predeterminada .
Descarga globalmente el paquete en la carpeta %UserProfile%\AppData\Local\Yarn\ .
En mi PC, existe en C:\Users\username\AppData\Local\Yarn\Cache\v6 :
Asegúrese de haber instalado note.js, luego ejecute el siguiente comando para instalar Yarn:
npm install --global yarnEjecute el comando para agregar el paquete Signalr:
yarn add @microsoft/signalr Busque el paquete @microsoft ) en %LOCALAPPDATA%\Yarn\ y copie toda la carpeta @microsoft :
Pegue toda la carpeta @microsoft en la carpeta wwwroot/lib de su proyecto:
Luego agregue la referencia js como a continuación:
<script src="@Url.Content("/lib/@microsoft/signalr/dist/browser/signalr.js")"></script>En realidad, le sugiero que pueda usar Libman , puede descargarlo directamente a su carpeta wwwroot.
No puede usar el paquete así en su Webclient.
Todo lo que desee que sea accesible desde su Cliente debe ser atendido por su Servidor.
Servir un paquete es un poco más complicado y recomendaría usar un paquete.
Con Webpack, por ejemplo, puede preparar los recursos de su cliente para ser atendidos.
En la práctica, esto puede verse así:
Webpack está configurado para agrupar su cliente Javascript y ponerlo en <project-root>/assets
Su servidor está configurado para servir cada archivo desde el directorio <project-root>/assets a la ruta /assets .
En el archivo de script de su cliente, importa su módulo de biblioteca así:
import {<your needed parts>} from '@microsoft/signalr';Finalmente, su página html carga el script de su cliente así:
<script src="/assets/bundle.js" type="module"></script>Este es un ejemplo simplificado y le recomendaría que lea los documentos de Webpack.