web-dev-qa-db-fra.com

Module webpack introuvable: Erreur: impossible de résoudre «jquery»

Lorsque j'exécute la commande 'webpack', j'obtiens cette erreur:

ERREUR dans ./js/main.js Module introuvable: Erreur: impossible de résoudre 'jquery' dans '...\js' @ ./js/main.js 3: 0-16 4: 0-23

Dans package.json, j'ai:

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

dans 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"}
    ]
  }
};

et dans main.js en haut du fichier, j'ai:

import $ from 'jquery';

J'utilise également le guidon dans main.js. Serait-ce que le guidon ou le guidon-chargeur interfère avec le jquery? J'ai déjà utilisé webpack et jquery sans ce problème dans un autre projet où je n'utilisais pas de guidon, mais cela n'a peut-être rien à voir avec cela.

7
sdMarth

Le guidon n'a rien à voir avec ça. Le problème est que vous avez changé resolve.modules en [path.join(__dirname, "js/helpers")]. Par conséquent, webpack ne cherchera dans js/helpers Que n'importe quel module, mais jquery et les autres dépendances de npm sont dans node_modules. La valeur par défaut de resolve.modules Est ["node_modules"]. Vous devez également ajouter node_modules Pour conserver la résolution régulière du module.

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

Eh bien dans mon cas, il s'agissait d'importer jquery au lieu de jQuery , c'est une configuration webpack:

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

}

jetez un oeil à ceci: webpack Impossible de résoudre 'jquery'

4
Ebrahim