jQuery is not defined (React Js)

Publicado en 'Programación' por eduar2083, 29 Mar 2020.





  1. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    246
    Likes:
    54
    Temas:
    22




    Hola,
    Estoy utilizando una librería JS que al parecer tiene dependencia de jQuery dado que me tira el error que puse en el título.
    He procedido a instalar jQuery con npm
    $ install jquery --save
    Luego he importado dicha librería en el componente
    import $ from 'jquery';
    iimport 'url_la_otra_librería_que_usa_jquery.js';


    Como ven, he importado jquery antes de importar la otra librería pero el problema perisiste. Me sigue tirando el error.
     


  2. gnox

    gnox Miembro de bronce

    Registro:
    3 Ene 2013
    Mensajes:
    2,348
    Likes:
    946
    Temas:
    82
    Algo similar me paso y rebuscando tuve que poner esta linea al final del js general de la aplicacion despues de los imports

    Código:
    window['JQuery']=window['$']=require('jquery');
    
    Y si tu app usa algun bundler tipo webpack tienes que agregar en su config ejem : webpack.config.js
    Código:
    new Webpack.ProviderPlugin({$: 'jquery', jQuery: 'jquery', 'window.jQuery': 'jquery'})...
    
     
  3. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    246
    Likes:
    54
    Temas:
    22
    Hola @gnox,
    He agregado la primera línea al final de los imports:
    [​IMG]

    He creado la app con el comando create-react-app, tengo entendido que por debajo instala y configura webpack, babel etc. Ahora no encuentro dicho archivo para agregar la segunda línea que indicas, ¿quizás tenga que crearlo manualmente?
    Saludos.
     
  4. gnox

    gnox Miembro de bronce

    Registro:
    3 Ene 2013
    Mensajes:
    2,348
    Likes:
    946
    Temas:
    82
    estas usando un js no importado como modulo (adminxxx.js), si el js es externo de tipo vendor/3rdparty es mejor dejarlo en public y lo agregas al final del public/index.html. En src solo deja tus componentes .

    y en el App.js dejas
    Código:
    import $ from 'jquery';
    window['jQuery']=$
    
    Para ver el webpack tienes que "ejectar" la aplicacion que recuerde pero era irreversible ..