webpack n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes

125

J'apprends React.js et j'utilise Windows 8 OS.Je suis allé dans mon dossier racine

1.Created the package.json file by npm init
2. install webpack by npm install -S webpack.now webpack has been downloaded to my modules folder
3. install webpack globally by typing npm install webpack -g
4. i am also having a webpack.config.js in my root folder which contains the source and ouput directory
5. when i type the webpack command i am getting the below error.

webpack n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes

Yasar
la source
J'ai eu ce problème, mais après le redémarrage de l'IDE (PHPStorm dans mon cas), le problème a été résolu
Arthur Tsidkilov le

Réponses:

81

J'ai eu ce problème pendant longtemps aussi. (webpack installé globalement, etc. mais toujours pas reconnu) Il s'est avéré que je n'ai pas spécifié de variable d'environnement pour npm (où se trouve le fichier webpack.cmd) Donc j'ajoute à ma variable Path

%USERPROFILE%\AppData\Roaming\npm\

Si vous utilisez Powershell, vous pouvez taper la commande suivante pour ajouter efficacement à votre chemin:

[Environment]::SetEnvironmentVariable("Path", "$env:Path;%USERPROFILE%\AppData\Roaming\npm\", "User")

IMPORTANT: n'oubliez pas de fermer et de rouvrir la fenêtre de votre PowerShell pour appliquer cela.

J'espère que ça aide.

Vlado
la source
6
Eh bien, je suis coincé au même endroit ... Pouvez-vous s'il vous plaît élaborer votre réponse
Intruder
2
Je suivais toutes les étapes mais cela ne fonctionnait pas puis finalement je me suis rendu compte que je n'avais pas ouvert CMD en tant qu'administrateur.
Hosein Djadidi
1
Mieux vaut% APPDATA% \ npm
Nikolay Petyukh
156

La meilleure solution à ce problème consiste à installer Webpackglobalement.

Cela fonctionne toujours et cela a fonctionné pour moi. Essayez ci-dessous la commande.

npm install -g webpack
srikanth_k
la source
36
Je pense qu'il convient de noter que l'utilisation de -g installe globalement le webpack, ce que vous ne voudrez peut-être pas si vous avez plusieurs projets qui peuvent nécessiter différentes versions de webpack.
Uber Schnoz
92

Comme alternative, si Webpack est installé localement, vous pouvez spécifier explicitement où l'invite de commande doit chercher pour le trouver, comme ceci:

node_modules\.bin\webpack

(Cela suppose que vous êtes dans le répertoire avec votre package.jsonet que vous avez déjà exécuté npm install webpack.)

BalinKingOfMoria réintègre les CM
la source
4
D'accord avec Max, la raison étant qu'il est recommandé d'installer webpack localement (dans devDependencies) - Mon problème était cependant un peu différent, lors de l'ajout de webpack comme étape de pré-construction dans VS 2017, je pensais que VS était assez intelligent pour trouver le webpack cmd localement sans le chemin complet
JimiSweden
@JimiSweden Avez - vous essayé d' ajouter node_modules\.binà outils-> Configurer les outils externes
Max Favilli
4
Vous pouvez essayer d'utiliser npx webpackqui vérifie également ./node_modules/.binau lieu de jouer avec les chemins.
Manfred
47

npm install -g webpack-dev-server résoudra votre problème

Araali Farooq
la source
2
Cela peut résoudre le message d'erreur OP publié, mais ce n'est pas une bonne solution au problème car il ajoute plus de dépendances que la simple résolution du pack Web manquant. Voir l'une des autres réponses les plus votées pour de meilleures alternatives.
angularsen
2
Comme l'ont déjà souligné différents contributeurs (voir autres réponses / commentaires), l'installation globale est considérée comme une mauvaise pratique car elle vous verrouille à une version. Voir aussi webpack.js.org/guides/installation
Manfred
17

Essayez de supprimer node_modules dans le répertoire local et relancez l' installation de npm .

Dushyant Singh
la source
1
Merci, cela l'a fait pour moi, a essayé les autres réponses et était ici en colère contre le monde pendant plus d'une heure
Clint
12

Ajoutez la commande webpack en tant que script npm dans votre package.json.

{
    "name": "react-app",
    "version": "1.0.0",
    "scripts": {
      "compile": "webpack --config webpack.config.js"
    }
}

Puis cours

npm exécuter la compilation

Lorsque le Webpack est installé, il crée un binaire dans le dossier ./node_modules/.bin. npm scripts recherche également l'exécutable créé dans ce dossier

Nikhil Ranjan
la source
ne fonctionne pas - npm install -g webpack-dev-server est la commande correcte
TarmoPikaro
11

Webpack CLI est maintenant dans un package séparé et doit être installé globalement afin d'utiliser la commande 'webpack':

npm install -g webpack-cli

EDIT: Beaucoup de choses ont changé. Les gens de Webpack ne recommandent pas d'installer la CLI globalement (ou séparément d'ailleurs). Ce problème devrait être résolu maintenant, mais la commande d'installation appropriée est:

npm install --save-dev webpack

Cette réponse était à l'origine conçue comme une «solution de contournement» pour le problème des OP.

Averroes
la source
1
"doit être installé globalement" n'est pas correct d'après ce que je comprends. Même les gens du Webpack le déconseillent. Voir webpack.js.org/guides/installation
Manfred
4

vous devez installer webpack et webpack-cli dans le même périmètre.

npm i -g webpack webpack-cli

ou,

npm i webpack webpack-cli

si vous l'installez localement, vous devez l'appeler spécifiquement

node_modules/.bin/webpack -v
Irteza Asad
la source
Ou, s'il est installé localement, vous pouvez utiliser npx webpack(testé avec npm version 6.5.0, webpack 4.28.4 et webpack-cli 3.2.1)
Manfred
c'est le billet
Cekaleek
npm i -g webpack webpack-cli
VnDevil
4

Nous avons également rencontré ce problème et j'aime toutes les réponses qui suggèrent d'utiliser un script défini dans package.json.

Pour nos solutions, nous utilisons souvent la séquence suivante:

  1. npm install --save-dev webpack-cli(si vous utilisez webpack v4 ou version ultérieure, sinon utilisez npm install --save-dev webpack, voir l' installation de webpack , récupéré le 19 janvier 2019)
  2. npx webpack

L'étape 1 est ponctuelle. L'étape 2 vérifie également ./node_modules/.bin. Vous pouvez ajouter la deuxième étape en tant que script npm àpackage.json , par exemple:

{
   ...
   "scripts": {
      ...
      "build": "npx webpack --mode development",
      ...
   },
   ...
}

puis utilisez npm run buildpour exécuter ce script.

Testé cette solution avec npm version 6.5.0, webpack version 4.28.4 et webpack-cli version 3.2.1 sous Windows 10, en exécutant toutes les commandes à l'intérieur d'une fenêtre PowerShell. Ma version nodejs est / était 10.14.2. J'ai également testé cela sur Ubuntu Linux version 18.04.

Je déconseille d'installer webpack dans le monde entier, en particulier si vous travaillez avec de nombreux projets différents, dont chacun peut nécessiter une version différente de webpack. L'installation de webpack vous verrouille globalement vers une version particulière dans tous les projets sur la même machine.

Manfred
la source
4

Peut-être qu'une installation propre résoudra le problème. Cette "commande" supprime tous les modules précédents et les réinstalle, peut-être pendant que le module Webpack n'est pas complètement téléchargé et installé.

npm clean-install
muhamad zolfaghari
la source
3

J'ai eu le même problème et j'ai juste ajouté le bloc de code dans mon fichier package.json;

 "scripts": {
   "build": "webpack -d --progress --colors"
 }

puis exécutez la commande sur le terminal;

npm run build
B.Brave
la source
3

Installez WebPack dans le monde entier

npm install --global webpack
Alper Ebicoglu
la source
2

Exécutez simplement votre ligne de commande (cmd) en tant qu'administrateur.

ZOALIT
la source
2

Si vous venez de cloner un dépôt, vous devez d'abord exécuter

npm install

L'erreur que vous obtenez sera générée s'il vous manque des dépendances de projet. La commande ci-dessus les téléchargera et les installera.

PrestonDocks
la source
2
npx webpack

Cela a fonctionné pour moi. J'utilise Windows 10 et j'ai installé webpack localement.

Aystiro
la source
2

J'ai eu ce problème lors de la mise à niveau vers React 16.12.0 .

J'ai eu deux erreurs l'une concernant le webpack et l'autre concernant le magasin lors du rendu du DOM.

Erreur Webpack:

webpack n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes

Solution Webpack:

  1. Fermer la solution VS associée
  2. Supprimer le node_modulesdossier
  3. Supprimé package-lock.json
  4. npm install
  5. npm rebuild
  6. Répété cela 2-3 fois

Erreur de magasin:

Le type Store <()> n'est pas attribuable au type Store <any, AnyAction>

Solution de magasin:

Les suggestions de mise à jour de ma version React n'ont pas résolu cette erreur pour moi, mais je recommanderais de le faire quoi qu'il en soit.

Mon code a fini par ressembler à ceci:

ReactDOM.render(
        <Provider store={store as any}>
            <ConnectedApp />
        </Provider>,
        document.getElementById('app')
    );

Selon cette solution

EGC
la source
1

J'ai eu la même erreur, aucune des solutions n'a fonctionné pour moi, j'ai réinstallé le nœud et cela a réparé mon environnement, tout fonctionne à nouveau.

Simon Xiao
la source
C'est aussi ce que je devais faire. J'ai essayé au moins trois autres «solutions» fournies ici et aucune n'a fonctionné à l'exception de la désinstallation et de la réinstallation de Node.
Quiver
1

Pour moi, cela a fonctionné pour installer Webpack séparément. Donc simplement:

$npm install
$npm install webpack

Je ne sais pas pourquoi cela devrait être nécessaire, mais cela a fonctionné.

Katinka Hesselink
la source
1

Ces commandes ci-dessous ont fonctionné pour moi.

npm cache clean --force
npm install -g webpack

Remarque - Exécutez ces commandes en tant qu'administrateur. Une fois installé, fermez votre invite de commande et redémarrez-la pour voir les modifications appliquées.

Nand Kishor
la source
1

Si vous créez un dossier standard pour vos projets JS afin de pouvoir utiliser des modules JS, webpacketBabel sont d'excellents outils.

N'installez pas webpackglobalement et après avoir installé les versions les plus récentes des deux, votre package.jsonfichier sera chargé et prêt à être copié pour de futurs projets.

Assurez-vous de supprimer le node_modulesdossier pour réduire la taille du fichier dans votre dossier standard, puis de réinstaller l'utilisation de node_modules npm install.

J'ai oublié d'exécuter npm install et j'ai continué à recevoir cette erreur en essayant d'exécuter mon serveur de développement Webpack jusqu'à ce que je réalise que je devais exécuter npm installpour installer node_modules, puis cela a fonctionné.

Jason Bar
la source
Supprimer node_modules + npm install m'a permis de recommencer. Merci!
Brandon Barkley le
0

Le correctif pour moi était d'installer localement webpack en tant que devDependency. Bien que je l'ai car devDependenciesil n'a pas été installé dans le dossier node_modules. Alors j'ai couru npm install --only=dev

Mouette
la source
-1

Parfois, npm install -g webpack ne s'enregistre pas correctement. Mieux vaut utiliser npm install webpack --save . Cela a fonctionné pour moi.

Amartya Banerjee
la source
1
-g s'installe globalement (pas votre projet local node_modules + package.json) tandis que --save s'installe localement (dans votre node_modules + package.json local) donc cette réponse est erronée.
George
-1

J'ai eu ce même problème et je ne pouvais pas le comprendre. J'ai parcouru chaque ligne de code et je n'ai pas trouvé mon erreur. Puis j'ai réalisé que j'avais installé webpack dans le mauvais dossier. Mon erreur ne portait pas attention au dossier dans lequel j'installais webpack.

Michael Neely
la source