webpack tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan atau file batch

125

Saya sedang mempelajari React.js dan saya menggunakan OS windows 8. Saya telah menavigasi ke folder root saya

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 tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan atau file batch

yasar
sumber
Saya mengalami masalah ini, tetapi setelah memulai ulang IDE (PHPStorm dalam kasus saya) masalah terpecahkan
Arthur Tsidkilov

Jawaban:

81

Saya memiliki masalah ini untuk waktu yang lama juga. (webpack diinstal secara global dll. tapi masih belum dikenali) Ternyata saya belum menentukan variabel lingkungan untuk npm (di mana file webpack.cmd duduk) Jadi saya tambahkan ke variabel Path saya

%USERPROFILE%\AppData\Roaming\npm\

Jika Anda menggunakan Powershell, Anda dapat mengetikkan perintah berikut untuk menambahkan secara efektif ke jalur Anda:

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

PENTING: Jangan lupa untuk menutup dan membuka kembali jendela PowerShell Anda untuk menerapkannya.

Semoga membantu.

Vlado
sumber
6
Yah, saya terjebak di tempat yang sama ... Bisakah Anda menjelaskan jawaban Anda
Penyusup
2
Saya mengikuti semua langkah tetapi tidak berhasil kemudian akhirnya saya menyadari, saya tidak membuka CMD sebagai administrator.
Hosein Djadidi
1
Lebih baik disetel ke% APPDATA% \ npm
Nikolay Petyukh
156

Solusi yang lebih baik untuk masalah ini adalah menginstal Webpacksecara global.

Ini selalu berhasil dan berhasil untuk saya. Coba perintah di bawah ini.

npm install -g webpack
srikanth_k
sumber
36
Saya pikir perlu dicatat bahwa menggunakan -g menginstal webpack secara global, yang mungkin tidak Anda inginkan jika Anda memiliki banyak proyek yang mungkin memerlukan versi webpack yang berbeda.
Uber Schnoz
92

Sebagai alternatif, jika Anda menginstal Webpack secara lokal, Anda dapat secara eksplisit menentukan di mana Command Prompt harus mencari untuk menemukannya, seperti:

node_modules\.bin\webpack

(Ini mengasumsikan bahwa Anda berada di dalam direktori dengan Anda package.jsondan Anda sudah menjalankan npm install webpack.)

BalinKingOfMoria Mengembalikan CM
sumber
4
Setuju dengan Max, alasannya adalah karena disarankan untuk menginstal webpack secara lokal (dalam devDependencies) - Masalah saya sedikit berbeda, ketika menambahkan webpack sebagai langkah pra-build di VS 2017, saya pikir VS cukup pintar untuk menemukan webpack cmd secara lokal tanpa jalur lengkap
JimiSweden
@JimiSweden apakah Anda mencoba menambahkan node_modules\.binke alat-> konfigurasi alat eksternal
Max Favilli
4
Anda dapat mencoba menggunakan npx webpackyang juga memeriksa ./node_modules/.binalih-alih mengutak-atik jalur.
Manfred
47

npm install -g webpack-dev-server akan menyelesaikan masalah Anda

Araali Farooq
sumber
2
Ini mungkin menyelesaikan pesan kesalahan yang diposting OP, tetapi ini bukan solusi yang baik untuk masalah karena menambahkan lebih banyak dependensi daripada hanya menyelesaikan webpack yang hilang. Lihat salah satu jawaban pilihan tinggi lainnya untuk alternatif yang lebih baik.
angularsen
2
Seperti yang telah ditunjukkan oleh kontributor yang berbeda (lihat jawaban / komentar lain), menginstal secara global dianggap praktik yang buruk karena mengunci Anda ke satu versi. Lihat juga webpack.js.org/guides/installation
Manfred
17

Coba hapus node_modules di direktori lokal dan jalankan kembali npm install .

Dushyant Singh
sumber
1
Terima kasih ini benar-benar melakukannya untuk saya, mencoba jawaban lain dan di sini marah pada dunia selama lebih dari satu jam
Clint
12

Tambahkan perintah webpack sebagai skrip npm di package.json Anda.

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

Lalu lari

npm jalankan kompilasi

Ketika webpack diinstal, itu membuat biner di folder ./node_modules/.bin. Skrip npm juga mencari executable yang dibuat di folder ini

Nikhil Ranjan
sumber
tidak berfungsi - npm install -g webpack-dev-server adalah perintah yang benar
TarmoPikaro
11

CLI Webpack sekarang dalam paket terpisah dan harus diinstal secara global untuk menggunakan perintah 'webpack':

npm install -g webpack-cli

EDIT: Banyak yang telah berubah. Orang-orang Webpack tidak merekomendasikan menginstal CLI secara global (atau secara terpisah dalam hal ini). Masalah ini harus diperbaiki sekarang tetapi perintah instal yang tepat adalah:

npm install --save-dev webpack

Jawaban ini awalnya dimaksudkan sebagai "solusi" untuk masalah OP.

averroes
sumber
1
"harus diinstal secara global" tidak benar menurut pemahaman saya. Bahkan orang-orang webpack menyarankan untuk tidak melakukannya. Lihat webpack.js.org/guides/installation
Manfred
4

Anda harus menginstal webpack dan webpack-cli dalam lingkup yang sama.

npm i -g webpack webpack-cli

atau,

npm i webpack webpack-cli

jika Anda menginstalnya secara lokal, Anda perlu memanggilnya secara spesifik

node_modules/.bin/webpack -v
Irteza Asad
sumber
Atau, jika diinstal secara lokal, Anda dapat menggunakan npx webpack(diuji dengan npm versi 6.5.0, webpack 4.28.4 dan webpack-cli 3.2.1)
Manfred
itulah tiketnya
Cekaleek
npm i -g webpack webpack-cli
VnDevil
4

Kami juga mengalami masalah ini dan saya menyukai semua jawaban yang menyarankan penggunaan skrip yang ditentukan dalam package.json .

Untuk solusi kami, kami sering menggunakan urutan berikut:

  1. npm install --save-dev webpack-cli(jika Anda menggunakan webpack v4 atau lebih baru, jika tidak gunakan npm install --save-dev webpack, lihat penginstalan webpack , diambil pada 19 Jan 2019)
  2. npx webpack

Langkah 1 adalah sekali saja. Langkah 2 juga memeriksa ./node_modules/.bin. Anda juga dapat menambahkan langkah kedua sebagai skrip npm package.json, misalnya:

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

dan kemudian gunakan npm run build untuk menjalankan skrip ini.

Menguji solusi ini dengan npm versi 6.5.0, webpack versi 4.28.4 dan webpack-cli versi 3.2.1 di Windows 10, menjalankan semua perintah di dalam jendela PowerShell. Versi nodejs saya adalah / was 10.14.2. Saya juga menguji ini di Ubuntu Linux versi 18.04.

Saya menyarankan agar Anda tidak menginstal webpack secara global, khususnya jika Anda bekerja dengan banyak proyek berbeda yang masing-masing mungkin memerlukan versi webpack yang berbeda. Menginstal webpack secara global mengunci Anda ke versi tertentu di semua proyek pada mesin yang sama.

Manfred
sumber
4

Mungkin pemasangan bersih akan memperbaiki masalah. "Perintah" ini menghapus semua modul sebelumnya dan menginstalnya kembali, mungkin saat modul webpack tidak diunduh dan diinstal secara lengkap.

npm clean-install
muhamad zolfaghari
sumber
3

Saya memiliki masalah yang sama dan baru saja menambahkan blok kode ke dalam file package.json saya;

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

dan kemudian jalankan perintah di terminal;

npm run build
B. Berani
sumber
3

Instal WebPack secara global

npm install --global webpack
Alper Ebicoglu
sumber
2

Jalankan saja baris perintah (cmd) Anda sebagai administrator.

ZOALIT
sumber
2

Jika Anda baru saja mengkloning repo, Anda harus menjalankannya terlebih dahulu

npm install

Kesalahan yang Anda dapatkan akan dihasilkan jika Anda kehilangan dependensi proyek. Perintah di atas akan mengunduh dan menginstalnya.

PrestonDocks
sumber
2
npx webpack

Itu berhasil untuk saya. Saya menggunakan Windows 10 dan saya menginstal webpack secara lokal.

aystiro
sumber
2

Saya mengalami masalah ini saat meningkatkan ke React 16.12.0 .

Saya mengalami dua kesalahan, satu tentang webpack dan yang lainnya tentang toko saat merender DOM.

Kesalahan Webpack:

webpack tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan atau file batch

Solusi Webpack:

  1. Tutup Solusi VS terkait
  2. Hapus node_modulesfolder
  3. Dihapus package-lock.json
  4. npm install
  5. npm rebuild
  6. Ulangi ini 2-3 kali

Kesalahan Toko:

Type Store <()> tidak dapat ditetapkan untuk mengetik Store <any, AnyAction>

Solusi Toko:

Saran untuk memperbarui versi React saya tidak memperbaiki kesalahan ini untuk saya, tetapi bagaimanapun saya akan merekomendasikan melakukannya.

Kode saya akhirnya terlihat seperti ini:

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

Sesuai solusi ini

EGC
sumber
1

Saya mendapat kesalahan yang sama, tidak ada solusi yang berhasil untuk saya, saya menginstal ulang node dan memperbaiki lingkungan saya, semuanya berfungsi kembali.

Simon Xiao
sumber
Ini juga yang harus saya lakukan. Saya mencoba setidaknya tiga "solusi" lain yang disediakan di sini dan tidak ada yang berfungsi kecuali untuk menghapus dan menginstal ulang Node lagi.
Quiver
1

Bagi saya itu berhasil menginstal webpack secara terpisah. Sederhananya:

$npm install
$npm install webpack

Saya tidak yakin mengapa ini perlu, tetapi berhasil.

Katinka Hesselink
sumber
1

Perintah yang diberikan di bawah ini berfungsi untuk saya.

npm cache clean --force
npm install -g webpack

Catatan - Jalankan perintah ini sebagai administrator. Setelah terinstal, tutup command prompt Anda dan mulai ulang untuk melihat perubahan yang diterapkan.

Nand Kishor
sumber
1

Jika Anda membuat folder boilerplate untuk proyek JS Anda sehingga Anda dapat menggunakan Modul JS, webpackdanBabel merupakan alat yang hebat.

Jangan instal webpacksecara global dan setelah menginstal versi terbaru dari keduanya, package.jsonfile Anda akan dimuat dan siap disalin untuk proyek mendatang.

Pastikan untuk menghapus node_modulesfolder untuk memperkecil ukuran file di folder boilerplate Anda dan kemudian menginstal ulang penggunaan node_modules npm install.

Saya lupa menjalankan npm install dan terus mendapatkan kesalahan ini ketika mencoba menjalankan dev-server webpack saya sampai saya menyadari bahwa saya perlu menjalankan npm installuntuk menginstal node_modulesdan kemudian berhasil.

Jason Bar
sumber
Hapus node_modules + npm install membuat saya melanjutkan. Terima kasih!
Brandon Barkley
0

Perbaikan bagi saya adalah menginstal webpack secara lokal sebagai devDependency. Meskipun saya memilikinya karena devDependenciestidak diinstal di folder node_modules. Jadi saya lari npm install --only=dev

Camar
sumber
-1

Terkadang npm install -g webpack tidak disimpan dengan benar. Lebih baik gunakan npm install webpack --save . Itu berhasil untuk saya.

Amartya Banerjee
sumber
1
-g menginstal secara global (bukan project lokal node_modules + package.json) sementara --save install secara lokal (di node_modules + package.json lokal Anda) jadi jawaban ini salah.
George
-1

Saya memiliki masalah yang sama dan saya tidak bisa memahaminya. Saya memeriksa setiap baris kode dan tidak dapat menemukan kesalahan saya. Kemudian saya menyadari bahwa saya menginstal webpack di folder yang salah. Kesalahan saya tidak memperhatikan folder tempat saya menginstal webpack.

Michael Neely
sumber