Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

261
Visualizações
Impedir que webpack elimine mi función exportada

Estoy tratando de crear una Razor Class Library que expone la función 1 js. Mi problema es que el paquete web elimina mi función exportada en el archivo del paquete final.

index.js

 import * as myLib from "someLib" export function connect(params) { // function logic omitted for clarity }

Y así es como quiero consumir el código js

 using MyComponent.Common; using Microsoft.JSInterop; namespace MyComponent.Services { /// <inheritdoc /> public class MyService : IMyService { private readonly Lazy<Task<IJSObjectReference>> _myWrapper; public MyService(IJSRuntime jsRuntime) { _myWrapper = new Lazy<Task<IJSObjectReference>>(() => jsRuntime.InvokeAsync<IJSObjectReference>("import", "./_content/MyComponent/index.bundle.js") .AsTask()); } /// <inheritdoc /> public async Task Connect(params) { if (_myWrapper is null) { throw new InvalidOperationException("Wrapper is not initialized"); } IJSObjectReference module = await _myWrapper.Value; await module.InvokeVoidAsync("connect", params); } } }

La excepción que obtengo es (como se esperaba porque no hay una función de conexión expuesta en index.bundle.js)

 Could not find 'connect' ('connect' was undefined). Error: Could not find 'connect' ('connect' was undefined). at https://localhost:7134/_framework/blazor.webassembly.js:1:328 at Array.forEach (<anonymous>) at a.findFunction (https://localhost:7134/_framework/blazor.webassembly.js:1:296) at _ (https://localhost:7134/_framework/blazor.webassembly.js:1:2437) at https://localhost:7134/_framework/blazor.webassembly.js:1:3325 at new Promise (<anonymous>) at Object.beginInvokeJSFromDotNet (https://localhost:7134/_framework/blazor.webassembly.js:1:3306) at Object.St [as invokeJSFromDotNet] (https://localhost:7134/_framework/blazor.webassembly.js:1:59849) at _mono_wasm_invoke_js_blazor (https://localhost:7134/_framework/dotnet.6.0.2-mauipre.1.22102.15.kf8l5pkaed.js:1:194973) at wasm://wasm/00970ba6:wasm-function[219]:0x1a129
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Acabo de encontrar una manera de arreglar esto. Al final de index.js la siguiente línea

 window.connect = connect;

Esto hace que el paquete web no elimine la función de conexión, sin embargo, todavía no se puede usar a través IJSObjectReference porque espera que la función se exporte como export function connect de exportación, así que inserté otra línea al final de index.bundle.js final

 export function connect(params) { window.connect(params); }

También tuve que deshabilitar las compilaciones automáticas de paquetes web en mi archivo csproj, ya que mis modificaciones se perderían después de cada compilación y eso es todo, pude usar mi función sin problemas después de eso.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda