web-dev-qa-db-fra.com

La commande webpack ne fonctionne pas

Je suis nouveau sur Node Js and 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é la commande Prompt to cd dans ce répertoire, puis j'ai exécuté la commande suivante npm init, puis installé Webpack via npm à l'aide de 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 procédant comme suit:

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

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

Une solution à ce problème consistait à installer Webpack de manière globale sur ma machine, ce que j'ai fait à l'aide de 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. Lorsque j'essaie d'exécuter ceci à partir de la racine de mon projet, il ne fait rien du tout (voir la capture d'écran)

enter image description here

S'il vous plaît dites-moi ce que je fais mal !!

54
Mohan

webpack n'est pas seulement dans votre répertoire node-modules/webpack/bin/, il est également lié dans 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 vous webpack.config.js dans le dossier racine de votre projet sans que Webpack soit installé globalement ou que votre configuration de paquet Web ne se trouve pas dans le dossier node_modules.

95
HiDeo
npm i webpack -g

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

12
user6922299

Je devais réinstaller Webpack pour le faire fonctionner avec ma version locale de Webpack, par exemple:

$ npm uninstall webpack
$ npm i -D webpack
7
mythz

Vous pouvez exécuter npx webpack. La commande npx, livrée avec Node 8.2/npm 5.2.0 ou supérieur, exécute le fichier binaire webpack (./node_modules/.bin/webpack) du package webpack. Source de l'information: https://webpack.js.org/guides/getting-started/

6
Andrei Bacescu

L'installation de Webpack avec l'option -g installe Webpack dans un dossier de

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

idem avec webpack-cli et webpack-dev-server

En dehors des nœuds_modules globaux, un lien est créé pour que le pack Web soit exécuté à partir de la ligne de commande.

C:\Users\<.nomdufichier.>\AppData\Roaming\npm

pour faire ce travail localement, j'ai fait ce qui suit

  1. a renommé le dossier webpack dans node_modules global en _old
  2. webpack installé localement dans le projet
  3. modifié le lien de commande webpack.cmd et dirigé le fichier webpack.js vers le dossier node_modules de mon application

Le problème avec cette approche est que vous devez 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 d'une installation avec l'option -g.

Ainsi, si vous aviez proj1, proj2 et proj3 avec leurs node_modules et leur webpack locaux installés (sans utiliser -g lors de l'installation), vous devrez alors créer des noms de liens non génériques au lieu de webpack.

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

PS: n'oubliez pas de mettre à jour votre package.json avec ces modifications, sinon vous obtiendrez des erreurs car il ne trouvera pas la commande webpack

0
peacemaker

Le moyen le plus rapide, pour que cela fonctionne, consiste à utiliser le pack Web à partir d'un autre emplacement. Cela vous évitera de l'installer globalement ou en cas d'échec de npm run webpack.

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

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

  1. accédez à l'emplacement du projet où se trouve votre webpack.config.js.
  2. dans la commande Invite écrire ce qui suit
"C:\Users\..\ProjectName\node_modules\.bin\webpack" --config webpack.config.vendor.js
0
Joshua Duxbury