2016-03-11 21 views
15

Sto imparando React e ho installato il webpack tramite npm nella directory del mio progetto ma zsh non sta trovando il comando anche se riesco a vedere il webpack installato nel mio progetto. Ho usato npm init --yes seguito da npm install --save webpackZsh: comando non trovato: webpack

risposta

16

Installarlo globalmente.

npm i -g webpack 

Se si lavorerà con webpack, installare webpack-dev-server di troppo

npm i -g webpack-dev-server 

vi consiglio prima di imparare un po 'di NPM e poi webpack. Lotterai molto E quindi consiglio di non usare affatto il webpack. L'ho trovato ridondante come una pergola. Sto incollando il mio ingurgito build e npm. In realtà NPM fa quasi fatica a capire. Gulp lo rende molto più facile.

+6

Per la documentazione: questa non è una pratica consigliata. https://webpack.js.org/get-started/install-webpack/ –

+0

@HelmutGranda La cosa potrebbe essere cambiata da allora. – atilkan

1

Nel mio caso ho avuto questo problema con webpack, grunt e gulp e sembra che il mio problema fosse un problema con le autorizzazioni.

Ho installato webpack e grunt a livello globale. Tuttavia, anche in questo caso, $ o $ webapack grugnito provocato comando non trovato

Il problema era che NPM installati i pacchetti globali in/usr/local/lib/node_modules che hanno richiesto i permessi di root.

Quindi, per evitare di dover utilizzare i permessi di root, ho cambiato la directory in cui i pacchetti globali devono essere installati in una directory in $ HOME. Per fare questo, ho seguito questa guida:

Install npm packages globally without sudo on macOS and Linux

Dopo questo, ho installato webpack e grugnito a livello globale di nuovo (questa volta senza sudo) e verificato che essi sono stati installati nella mia nuova directory.

Ora posso correre senza problemi!

$ webpack

e

$ Grugniscono

7

Installazione moduli nodo è globalmente una soluzione rapida, ma vi consiglio di aggiungere ./node_modules/.bin alla variabile percorso e provare per capire, qual è il problema.

Execute

~ export PATH="./node_modules/.bin:$PATH" 

In seguito si può semplicemente utilizzare tutti i pacchetti installati localmente nel progetto. Anche comandi come mocha o eslint possono essere eseguiti senza installare questi pacchetti a livello globale. Ci sono molte buone spiegazioni là fuori, forse anche leggere questo answer.

+0

Non farlo ... Mettere percorsi relativi nella tua variabile $ PATH è un buco di sicurezza. Vedere http://stackoverflow.com/a/9683472/1521572 – WrksOnMyMachine

8

aver webpack installato in locale, si potrebbe anche usare:

$(npm bin)/webpack 

invece di:

./node_modules/.bin/webpack 
4

Non v'è alcuna necessità di installare webpack a livello globale.

Prova la mia strada:

In primo luogo, nel file package.json, aggiungere questo:

"scripts": { 
    "start": "webpack" 
}, 

Poi, nel vostro terminale, eseguire

$npm start 

Un altro modo rapido: Basta eseguire (Sì, è 'npx')

$npx webpack 

Questo è tutto.