Módulo Webpack no encontrado: Error: No se puede resolver ‘jquery’

2 minutos de lectura

avatar de usuario
sdmarth

Cuando ejecuto el comando ‘webpack’, aparece este error:

ERROR en ./js/main.js Módulo no encontrado: Error: No se puede resolver ‘jquery’ en ‘…\js’ @ ./js/main.js 3:0-16 4:0-23

En paquete.json tengo:

"devDependencies": {
   "handlebars": "^4.0.6",
   "handlebars-loader": "^1.4.0",
   "jquery": "^3.2.1",
   "path": "^0.12.7"
},

En webpack.config.js:

var path = require("path");

module.exports = {
  entry: "./js/main.js",
  output: {
    path: __dirname + "/js",
    filename: "scripts-bundled.js"
  },
  resolve: {
    modules: [
      path.join(__dirname, "js/helpers")
    ]
  },
  module: {
    loaders: [
      {test: /\.hbs$/, loader: "handlebars-loader"}
    ]
  }
};

Y en main.js en la parte superior del archivo, tengo:

import $ from 'jquery';

También estoy usando manillares en main.js. ¿Podría ser que handlebars o handlebars-loader estén interfiriendo con el jquery? He usado webpack y jquery sin este problema antes en otro proyecto en el que no usé manillares, pero tal vez no tenga nada que ver con eso.

  • hasta donde yo sé, deberías usar JQLITe para usar jquery con webpack

    – Nalin Aggarwal

    4 de abril de 2017 a las 4:58

avatar de usuario
Lav Kumar

Resuelva el error usando el siguiente comando.
npm install --save jquery

  • Si está utilizando npm > 5.0.0, el --save bandera no es necesaria.

    – Adam_G

    5 de noviembre de 2021 a las 17:02

avatar de usuario
Ebrahim

Bueno, en mi caso fue algo sobre importar jquery en vez de jQueryes una configuración de paquete web:

externals: {
    // require("jquery") is external and available
    //  on the global var jQuery
    "jquery": "jQuery"
}

echa un vistazo a esto: webpack No se puede resolver ‘jquery’

El manillar no tiene nada que ver. El problema es que cambiaste resolve.modules a [path.join(__dirname, "js/helpers")]. Entonces webpack solo buscará en js/helpers para cualquier módulo, pero jquery y otras dependencias de npm están en node_modules. El valor predeterminado de resolve.modules es ["node_modules"]. También necesita agregar node_modules para mantener la resolución normal del módulo.

resolve: {
  modules: [
    path.join(__dirname, "js/helpers"),
    "node_modules"
  ]
},

Si está utilizando React con Bootstrap y recibe este error, puede deberse a que está utilizando la versión inferior de Bootstrap. Lo resolví actualizando la versión a Bootstrap versión 5.

avatar de usuario
limusina

Si usa mac OSX, npm versión 5.0.0 o superior, pruebe este comando en la terminal de la carpeta de su proyecto: npm install jquery jquery-ui.

¿Ha sido útil esta solución?