Erreur: impossible de trouver le module 'webpack'

152

Je ne fais que commencer avec webpack et j'ai du mal à créer l' exemple à points d'entrée multiples . Le fichier webpack.config.js de l'exemple comprend la ligne

 var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");

qui échoue pour moi avec l'erreur

Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'

En cherchant, j'ai trouvé d'autres exemples d'utilisation de CommonsChunkPlugin avec l'expression

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");

qui échoue avec l'erreur

ReferenceError: webpack is not defined

D'autres recherches ont trouvé un certain nombre d'exemples, notamment

var webpack = require('webpack');

et ma construction échoue maintenant avec

Error: Cannot find module 'webpack'

Je ne sais pas comment procéder.

Ed.
la source
2
Avez-vous couru npm install webpackavant?
Johannes Ewald
Oui. Webpack est installé et travaille sur d'autres exemples. C'est en essayant d'ajouter le plugin pour l'exemple à points d'entrée multiples que j'ai rencontré des problèmes.
Ed.
Error: Cannot find module 'webpack'est une erreur de nœud. Cela n'a donc rien à voir avec le webpack lui-même (afaict). Il semble que node cherche dans les mauvais dossiers ...
Johannes Ewald
6
Je vois, cela npm install -g webpackn'a pas fonctionné pour moi non plus. Mais c'est le cas npm install webpack- assurez-vous que vous êtes dans le dossier racine de l'application lorsque vous appelez, npm install webpackpuis vérifiez si le module existe dans le node_modulesdossier. Il semble également que webpacknécessite fseventsun module (facultatif) sur les systèmes Linux - J'utilise Windows donc je ne suis pas sûr - essayez d'installer fseventsaussi
AndreiDMS
3
Comme je l'ai dit ci-dessus, l'installation globale n'a pas fonctionné pour moi non plus, alors essayez d'installer webpackdans le dossier local de l'application, en utilisant npm install webpack, sans-g
AndreiDMS

Réponses:

273

Lier le package installé globalement à votre projet

npm link webpack
Ruslanas Balčiūnas
la source
7
C'est la réponse la plus simple qui soit.
Thomas W
1
Sur quel fichier ce paramètre affecte-t-il? Je n'ai vu aucun changement dans les fichiers json. Pouvez-vous s'il vous plaît élaborer?
Royi Namir
il ne semble pas de toute façon se dissocier. Le serveur webpack-dev-server s'est écrasé après cela.
Plankton
Après un mois sans pouvoir le faire fonctionner, j'étais sur le point d'abandonner et de continuer à travailler avec Angularjs. Cela a finalement fonctionné! Je vous remercie.
NestorArturo
J'installe webpack, mais je lance webpack sans aucun affichage de paramètre, ce type de message: lequel aimez-vous installer (webpack-cli / web-command)
Ng Sharma
60

Tout en travaillant sur Windows, j'ai installé webpack localement et cela a résolu mon problème

Donc, sur votre invite de commande, allez dans le répertoire dans lequel vous voulez exécuter webpack, installez webpack localement (sans le -g) et profitez ...

Ran
la source
10
mais vous n'avez pas mentionné comment l'installer "localement"
jpganz18
localement est npm install webpack, sans utiliser -g comme mentionné. Cela a fonctionné dans mon cas.
Honza P. le
24

Semble être un problème Windows courant. Cela a résolu le problème pour moi:

Nodejs ne trouve pas le module installé sur Windows?

"Ajoutez une variable d'environnement appelée NODE_PATHet définissez-la sur %USERPROFILE%\Application Data\npm\node_modules(Windows XP), %AppData%\npm\node_modules(Windows 7) ou partout où npm finit par installer les modules sur votre version Windows. Pour en finir une fois pour toutes, ajoutez-la en tant que variable système dans l'onglet Avancé de la boîte de dialogue Propriétés système (exécutez control.exe sysdm.cpl, Système, 3). "

Notez que vous ne pouvez pas réellement utiliser une autre variable d'environnement dans la valeur de NODE_PATH. Autrement dit, ne copiez pas et collez simplement cette chaîne ci-dessus, mais définissez-la sur un chemin résolu réel commeC:\Users\MYNAME\AppData\Roaming\npm\node_modules

Jamie Treworgy
la source
1
ne fonctionne pas pour moi sur Windows 10. Il n'y a pas de node_modulesdossier dans la C:\Users\MYNAME\AppData\Roaming\npm`. I tried to set valeur NODE_PATH` C:\Program Files (x86)\nodejs\node_modulesmais cela n'a pas aidé
VB_
3
Fonctionne très bien pour moi sur Windows 10: setx NODE_PATH %AppData%\npm\node_modules. Vous devrez peut-être redémarrer votre cmdavant que la NODE_PATHvariable soit disponible ou également exécutée set NODE_PATH=%AppData%\npm\node_modules.
Nux
23

J'ai résolu le même problème en réinstallant, exécutez ces commandes

rm -Rf node_modules
rm -f package-lock.json
npm install

rmest toujours une commande dangereuse, surtout avec -f, veuillez noter qu'avant de l'exécuter !!!!!

troy
la source
2
package-lock.json est le coupable
Sérgio S. Filho
17

Exécutez les commandes ci-dessous dans le terminal:

npm install --save-dev webpack

npm install --save-dev webpack-dev-server

Sreen Sunki
la source
9

J'avais ce problème sur OS X et cela semblait être dû à une incompatibilité de version entre mon installation globale webpacket mon installée localement webpack-dev-server. La mise à jour des deux vers la dernière version a résolu le problème.

Cody Sand
la source
cela a fonctionné pour moi aussi, donc je pense que cela vaut la peine d'envisager dans divers scénarios si vous avez ce problème.
JL Peyret
2

Si vous avez installé un package de nœuds et que vous recevez toujours un message indiquant que le package n'est pas défini, vous pouvez avoir un problème avec la liaison PATH vers le binaire. Juste pour clarifier un binaire et un exécutable, faites essentiellement la même chose, qui consiste à exécuter un package ou une application. ei webpack ... exécute le package de nœuds webpack.

Dans Windows et Linux, il existe un dossier binaire global. Sous Windows, je crois que c'est quelque chose comme C: // Windows / System32 et sous Linux c'est usr / bin. Lorsque vous ouvrez le terminal / l'invite de commande, son profil lie la variable PATH au dossier bin global afin que vous puissiez exécuter des packages / applications à partir de celui-ci.

Ma meilleure hypothèse est que l'installation globale de webpack n'a peut-être pas réussi à placer le fichier exécutable dans le dossier binaire global. Sans l'exécutable, vous obtiendrez un message d'erreur. Cela pourrait être un autre problème, mais il est prudent de dire que si vous êtes ici en train de lire ceci, exécuter webpack globalement ne fonctionne pas pour vous.

Ma résolution à ce problème est de supprimer l'exécution de webpack globalement et de lier le PATH au dossier binaire node_module, qui est /node_modules/.bin.

WINDOWS: ajoutez node_modules / .bin à votre PATH. Voici un tutoriel sur la façon de modifier la variable PATH dans Windows.

LINUX: allez à la racine de votre projet et exécutez ceci ...

export PATH:$PWD/node_modules/.bin:$PATH 

Sous Linux, vous devrez exécuter cette commande à chaque fois que vous ouvrirez votre terminal. Ce lien vous montre ici comment modifier de manière permanente votre variable PATH.

Jed Lynch
la source
1

Sur Windows, j'ai observé que ce problème apparaît si vous n'avez pas de droits administratifs (c'est-à-dire que vous n'êtes pas un administrateur local) sur la machine.

Comme quelqu'un d'autre l'a suggéré, la solution semble être d'installer localement en n'utilisant pas l' -gindice.

dev.bv
la source
1

Ouvrez l'invite de commande npm et le dossier de solution - cd, puis exécutez simplement npm link webpack dans NPM cmd prommt et reconstruisez.

SAIRAM
la source
1

Vous pouvez essayer ceci.

npm install --only=dev

Ça marche pour moi.

Aermin
la source
0

Rien de suggéré ci-dessus n'a fonctionné pour moi (y compris la variable NODE_PATH). J'ai créé un lien sym de "node_modules" de mon dossier local vers le global AppData (par exemple ci-dessous) et cela a fonctionné comme du charme.

C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
C:\essportreact\day1>webpack
Hash: 2a82a67f90f9aa05ab4a
Version: webpack 1.15.0
Mazhar
la source
0

Je viens de découvrir que l'utilisation du terminal Atom IDE n'installe pas les dépendances localement (probablement un bogue ou juste moi). L'installation de git bash en externe et l'exécution des commandes npm ont à nouveau fonctionné pour moi

Agbolade d'Oladayo
la source
0

pour moi, c'est un mauvais retour d'erreur.

il y a eu une erreur de configuration dans webpack.config.js ,

supprimer le fichier et recommencer a résolu mon problème

Seeliang
la source
0

J'ai eu une tonne de problèmes pour créer une application .NET Core 2.0 très simple dans VS 2017. C'est l'erreur d'AppVeyor, mais c'était essentiellement la même chose localement (certains chemins omis pour la sécurité):

Exécution de la première génération de Webpack ...

module.js: 327 throw err;

EXEC: erreur: impossible de trouver le module '........ / node_modules / webpack / bin / webpack.js'

à Function.Module._resolveFilename (module.js: 325: 15)

à Function.Module._load (module.js: 276: 25)

à Function.Module.runMain (module.js: 441: 10)

au démarrage (node.js: 140: 18)

à node.js: 1043: 3

csproj (25,5): erreur MSB3073: La commande "node_noeud_modules / webpack / bin / webpack.js --config webpack.config.vendor.js" s'est terminée avec le code 1.

Échec de construction.

Je suis tombé sur cette question et réponse , et j'ai remarqué que mon instance locale avait également le même panneau d'avertissement sur le {Project Root} -> Dependencies -> npmdossier. Un clic droit et une pression sur "Restaurer les packages" ont tout chargé correctement, et j'ai pu construire avec succès.

X3074861X
la source
0

npm link webpack a fonctionné pour moi.

Ma configuration Webpack: "webpack": "^ 4.41.2", "webpack-dev-server": "^ 3.9.0", "webpack-cli": "^ 3.3.10"

Jayesh
la source
0

L'installation de Webpack et de CLI dans le monde a fonctionné pour moi.

npm i -g webpack webpack-cli
David Gogua
la source