commande webpack ne fonctionne pas

Je suis nouveau sur Node JS et Webpack. J'ai essayé de démarrer un projet avec des chargeurs de modules.

Tout d'abord, j'ai installé nodeJs et NPM et créé un nouveau répertoire appelé tutorial. J'ai utilisé l'invite de commande pour cd dans ce répertoire, puis exécuté la commande suivante npm init, puis installé webpack via npm en utilisant la commande ci-dessous:

npm install -S webpack

La 1ère commande a installé webpack localement dans le projet sous le répertoire' node-modules ' et je peux exécuter mon projet en faisant ceci:

nodejs node-modules/webpack/bin/webpack.js

Le problème avec ceci est que je dois placer mon fichier webpack.config.js dans ce répertoire que je veux placer dans la racine de mon projet.

Une solution à ce problème était d'installer webpack globalement sur ma machine, ce que j'ai fait en utilisant la commande ci-dessous:

npm install -g webpack

Ce webpack installé et maintenant j'ai une commande Webpack. Cependant, cette commande ne semble pas fonctionner ou faire quoi que ce soit du tout. Lorsque j'essaie de l'exécuter à partir de la racine de mon projet directroy cela ne fonctionne pas rien du tout (voir capture D'écran)

entrez la description de l'image ici

Dites-moi ce que je fais mal!!

39
demandé sur Mohammadreza Panahi 2016-08-05 14:28:33

6 réponses

webpack n'est pas seulement dans votre node-modules/webpack/bin/ répertoire, c'est aussi lié à node_modules/.bin.

Vous avez la commande npm bin pour obtenir le dossier où npm installera les exécutables.

Vous pouvez utiliser la propriété scripts de votre package.json pour utiliser webpack à partir de ce répertoire qui sera exporté.

"scripts": {
  "scriptName": "webpack --config etc..."
}

Par exemple:

"scripts": {
  "build": "webpack --config webpack.config.js"
}

Vous pouvez ensuite l'exécuter avec:

npm run build

Ou même avec des arguments:

npm run build -- <args>

Cela vous permet d'avoir webpack.config.js dans le dossier racine de votre projet sans avoir webpack globalement installé ou avoir votre configuration webpack dans le dossier node_modules.

76
répondu HiDeo 2016-12-01 15:19:29
npm i webpack -g

Installe webpack globalement sur votre système, ce qui le rend disponible dans la fenêtre du terminal.

13
répondu user6922299 2017-02-04 02:18:00

J'ai dû réinstaller webpack pour le faire fonctionner avec ma version locale de webpack, par exemple:

$ npm uninstall webpack
$ npm i -D webpack
3
répondu mythz 2018-03-25 05:40:33

Le moyen le plus rapide, juste pour que cela fonctionne est d'utiliser le Web pack à partir d'un autre emplacement, cela vous empêchera d'avoir à l'installer globalement ou si npm run webpack échoue.

Lorsque vous installez webpack avec npm, il va dans le dossier" node_modules\.bin " de votre projet.

Dans l'invite de commande (en tant qu'administrateur)

  1. allez à l'emplacement du projet où votre webpack.config.js est situé.
  2. dans l'invite de commande, écrivez ce qui suit
"C:\Users\..\ProjectName\node_modules\.bin\webpack" --config webpack.config.vendor.js
1
répondu Joshua Duxbury 2018-01-04 16:01:37

Installation webpack avec l'option-g installe webpack dans un dossier dans

C:\Users\<.profileusername.> \ AppData \ Roaming\npm\node_modules

Même avec webpack-cli et webpack-dev-serveur

En dehors des node_modules globaux, un lien est créé pour que webpack soit exécuté à partir de la ligne de commande

C:\Users\<.profileusername.>\AppData\Roaming\mnp

Pour que cela fonctionne localement, j'ai fait ce qui suit

  1. renommé le dossier webpack dans global node_modules à _old
  2. installé webpack localement dans le projet
  3. édité le lien de commande webpack.cmd et a pointé le webpack.js pour regarder dans mon dossier node_modules local dans mon application

Le problème avec cette approche est que vous devrez maintenir des liens pour chaque projet que vous avez. Il n'y a pas d'autre moyen puisque vous utilisez l'éditeur de ligne de commande pour exécuter la commande webpack lors de l'installation avec une option-G.

Donc, si vous aviez proj1, proj2 et proj3 tous avec leurs node_modules locaux et webpack Local installés (n'utilisant pas-g lors de l'installation), alors vous devrez créer des noms de liens non génériques au lieu de simplement webpack.

Exemple ici serait de créer webpack_proj1.cmd, webpack_proj2.cmd et webpack_proj3.cmd et dans chaque cmd, suivez les points 2 et 3 ci-dessus

PS: n'oubliez pas de mettre à jour votre paquet.json avec ces changements ou bien vous obtiendrez des erreurs car il ne trouvera pas la commande webpack

1
répondu peacemaker 2018-07-04 12:09:31

En fait, j'ai eu cette erreur il y a un moment. Il y a deux façons de faire fonctionner cela, selon ma connaissance.

  1. le serveur ne mettra pas à jour les modifications apportées à l'index.js à cause de quelques bogues webpack. Alors, redémarrez votre serveur.
  2. Mise à jour de votre nœud.js sera utile pour éviter de tels problèmes.
-2
répondu Thananjaya s 2017-12-13 08:13:14