webpack không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt


125

Tôi đang học React.js và tôi đang sử dụng Windows 8 OS. Tôi đã điều hướng đến thư mục gốc của mình

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 không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt


Tôi gặp sự cố này, nhưng sau khi khởi động lại IDE (PHPStorm trong trường hợp của tôi), sự cố đã được giải quyết
Arthur Tsidkilov

Câu trả lời:


81

Tôi đã có vấn đề này trong một thời gian dài quá. (webpack được cài đặt trên toàn cầu, v.v. nhưng vẫn không được nhận dạng) Hóa ra là tôi chưa chỉ định biến môi trường cho npm (tệp webpack.cmd đang ở đâu) Vì vậy, tôi thêm vào biến Đường dẫn của mình

%USERPROFILE%\AppData\Roaming\npm\

Nếu bạn đang sử dụng Powershell, bạn có thể nhập lệnh sau để thêm hiệu quả vào đường dẫn của mình:

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

QUAN TRỌNG: Đừng quên đóng và mở lại cửa sổ quyền hạn của bạn để áp dụng điều này.

Hy vọng nó giúp.


6
cũng Iam bị mắc kẹt tại cùng một vị trí ... u có thể xin hãy giải thích câu trả lời ur
Intruder

2
Tôi đã làm theo tất cả các bước nhưng nó không hoạt động và cuối cùng tôi nhận ra, tôi đã không mở CMD với tư cách quản trị viên.
Hosein Djadidi

1
Đặt tốt hơn thành% APPDATA% \ npm
Nikolay Petyukh

156

Giải pháp tốt hơn cho vấn đề này là cài đặt Webpack trên toàn cầu.

Điều này luôn hoạt động và nó có hiệu quả với tôi. Hãy thử lệnh dưới đây.

npm install -g webpack

36
Tôi nghĩ cần lưu ý rằng việc sử dụng -g cài đặt webpack trên toàn cầu, điều mà bạn có thể không muốn nếu bạn có nhiều dự án có thể yêu cầu các phiên bản webpack khác nhau.
Uber Schnoz

92

Thay vào đó, nếu bạn đã cài đặt Webpack cục bộ, bạn có thể chỉ định rõ ràng nơi Command Prompt sẽ tìm để tìm nó, như sau:

node_modules\.bin\webpack

(Điều này giả sử rằng bạn đang ở trong thư mục với của bạn package.jsonvà bạn đã chạy npm install webpack.)


4
Đồng ý với Max, lý do là bạn nên cài đặt webpack cục bộ (trong devDependencies) - Tuy nhiên, vấn đề của tôi hơi khác một chút, khi thêm webpack làm bước xây dựng trước trong VS 2017, tôi nghĩ VS đủ thông minh để tìm webpack cmd tại địa phương mà không có đường dẫn đầy đủ
JimiSweden

@JimiSweden bạn đã cố gắng thêm node_modules\.binđể công cụ-> cấu hình công cụ bên ngoài
Max Favilli

4
Bạn có thể thử sử dụng npx webpacknó cũng sẽ kiểm tra ./node_modules/.binthay vì loay hoay với các đường dẫn.
Manfred

47

npm install -g webpack-dev-server sẽ giải quyết vấn đề của bạn


2
Nó có thể giải quyết thông báo lỗi mà OP đã đăng, nhưng đây không phải là giải pháp tốt cho vấn đề vì nó thêm nhiều phụ thuộc hơn là chỉ giải quyết gói web bị thiếu. Xem bất kỳ câu trả lời nào được bình chọn cao khác để có các lựa chọn thay thế tốt hơn.
angularsen

2
Như đã được chỉ ra bởi các cộng tác viên khác nhau (xem các câu trả lời / nhận xét khác), việc cài đặt trên toàn cầu được coi là hành vi xấu vì nó khóa bạn xuống một phiên bản. Xem thêm webpack.js.org/guides/installation
Manfred

17

Thử xóa node_modules trong thư mục cục bộ và chạy lại cài đặt npm .


1
Cảm ơn điều này thực sự đã làm điều đó cho tôi, đã thử các câu trả lời khác và đã ở đây phát điên với thế giới trong hơn một giờ
Clint

12

Thêm lệnh webpack dưới dạng tập lệnh npm trong package.json của bạn.

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

Sau đó chạy

npm chạy biên dịch

Khi gói web được cài đặt, nó sẽ tạo một tệp nhị phân trong thư mục ./node_modules/.bin. npm scripts cũng tìm kiếm tệp thực thi được tạo trong thư mục này


không hoạt động - NPM cài đặt -g webpack-dev-server là đúng lệnh
TarmoPikaro

11

Webpack CLI hiện nằm trong một gói riêng biệt và phải được cài đặt trên toàn cầu để sử dụng lệnh 'webpack':

npm install -g webpack-cli

CHỈNH SỬA: Nhiều thay đổi. Webpack folks không khuyên bạn nên cài đặt CLI trên toàn cầu (hoặc riêng cho vấn đề đó). Sự cố này sẽ được khắc phục ngay bây giờ nhưng lệnh cài đặt thích hợp là:

npm install --save-dev webpack

Câu trả lời này ban đầu được dự định là "giải quyết vấn đề" cho vấn đề OP.


1
"phải được cài đặt trên toàn cầu" không đúng như tôi hiểu. Ngay cả những người làm webpack cũng khuyên không nên làm như vậy. Xem webpack.js.org/guides/installation
Manfred

4

bạn phải cài đặt webpack và webpack-cli trong cùng một phạm vi.

npm i -g webpack webpack-cli

hoặc là,

npm i webpack webpack-cli

nếu bạn cài đặt nó cục bộ, bạn cần phải gọi nó một cách cụ thể

node_modules/.bin/webpack -v

Hoặc, nếu được cài đặt cục bộ, bạn có thể sử dụng npx webpack(được thử nghiệm với npm phiên bản 6.5.0, webpack 4.28.4 và webpack-cli 3.2.1)
Manfred

đó là vé
Cekaleek

npm i -g webpack webpack-cli
VnDevil

4

Chúng tôi cũng đã gặp sự cố này và tôi thích tất cả các câu trả lời đề xuất sử dụng tập lệnh được xác định trong package.json.

Đối với các giải pháp của chúng tôi, chúng tôi thường sử dụng trình tự sau:

  1. npm install --save-dev webpack-cli(nếu bạn đang sử dụng webpack v4 trở lên, nếu không hãy sử dụng npm install --save-dev webpack, hãy xem cài đặt webpack , truy xuất ngày 19 tháng 1 năm 2019)
  2. npx webpack

Bước 1 là một lần duy nhất. Bước 2 cũng kiểm tra ./node_modules/.bin. Bạn cũng có thể thêm bước thứ hai dưới dạng tập lệnh npm package.json, ví dụ:

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

và sau đó sử dụng npm run buildđể thực thi tập lệnh này.

Đã thử nghiệm giải pháp này với npm phiên bản 6.5.0, webpack phiên bản 4.28.4 và webpack-cli phiên bản 3.2.1 trên Windows 10, thực thi tất cả các lệnh bên trong cửa sổ PowerShell. Phiên bản nodejs của tôi là / là 10.14.2. Tôi cũng đã thử nghiệm điều này trên Ubuntu Linux phiên bản 18.04.

Tôi khuyên bạn không nên cài đặt webpack trên toàn cầu, đặc biệt nếu bạn đang làm việc với nhiều dự án khác nhau, mỗi dự án có thể yêu cầu một phiên bản webpack khác. Cài đặt webpack toàn cầu sẽ khóa bạn xuống một phiên bản cụ thể trên tất cả các dự án trên cùng một máy.


4

Có thể một cài đặt sạch sẽ khắc phục được sự cố. "Lệnh" này xóa tất cả các mô-đun trước đó và cài đặt lại chúng, có lẽ trong khi mô-đun webpack được tải xuống và cài đặt chưa hoàn chỉnh.

npm clean-install

3

Tôi đã gặp vấn đề tương tự và vừa thêm khối mã vào tệp package.json của mình;

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

và sau đó chạy lệnh trên thiết bị đầu cuối;

npm run build


2

Chỉ cần chạy dòng lệnh (cmd) của bạn với tư cách quản trị viên.


2

Nếu bạn vừa sao chép một repo, trước tiên bạn cần chạy

npm install

Lỗi mà bạn nhận được sẽ được tạo ra nếu bạn thiếu các phụ thuộc của dự án. Lệnh trên sẽ tải xuống và cài đặt chúng.


2
npx webpack

Nó được làm việc cho tôi. Tôi đang sử dụng Windows 10 và tôi đã cài đặt webpack cục bộ.


2

Tôi gặp sự cố này khi nâng cấp lên React 16.12.0 .

Tôi đã gặp hai lỗi, một lỗi liên quan đến webpack và lỗi khác liên quan đến cửa hàng khi hiển thị DOM.

Lỗi Webpack:

webpack không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt

Giải pháp Webpack:

  1. Đóng giải pháp VS liên quan
  2. Xóa node_modulesthư mục
  3. Đã xóa package-lock.json
  4. npm install
  5. npm rebuild
  6. Lặp lại điều này 2-3 lần

Lỗi cửa hàng:

Nhập Store <()> không thể chỉ định để nhập Store <bất kỳ, AnyAction>

Giải pháp cửa hàng:

Đề xuất cập nhật phiên bản React của tôi không khắc phục được lỗi này cho tôi, nhưng tôi khuyên bạn nên làm điều đó.

Mã của tôi cuối cùng trông như thế này:

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

Theo giải pháp này


1

Tôi gặp lỗi tương tự, không có giải pháp nào phù hợp với tôi, tôi đã cài đặt lại nút và điều đó đã sửa chữa môi trường của tôi, mọi thứ hoạt động trở lại.


Đây là những gì tôi phải làm. Tôi đã thử ít nhất ba "giải pháp" khác được cung cấp trên đây và không giải pháp nào hoạt động ngoại trừ việc gỡ cài đặt và cài đặt lại Node.
Quiver

1

Đối với tôi, nó hoạt động để cài đặt webpack riêng biệt. Rất dễ:

$npm install
$npm install webpack

Tôi không chắc tại sao điều này lại cần thiết, nhưng nó đã hoạt động.


1

Các lệnh dưới đây đã làm việc cho tôi.

npm cache clean --force
npm install -g webpack

Lưu ý - Chạy các lệnh này với tư cách quản trị viên. Sau khi cài đặt, hãy đóng dấu nhắc lệnh của bạn và khởi động lại để xem các thay đổi được áp dụng.


1

Nếu bạn tạo một thư mục soạn sẵn cho các dự án JS của mình để bạn có thể sử dụng Mô-đun JS webpackBabellà công cụ tuyệt vời.

Không cài đặt webpacktrên toàn cầu và sau khi cài đặt phiên bản mới nhất của cả hai, package.jsontệp của bạn sẽ được tải lên và sẵn sàng để sao chép cho các dự án trong tương lai.

Đảm bảo xóa node_modulesthư mục để giảm kích thước tệp trong thư mục soạn sẵn của bạn và sau đó để cài đặt lại sử dụng node_modules npm install.

Tôi đã quên chạy npm install và liên tục gặp lỗi này khi cố chạy máy chủ webpack của mình cho đến khi tôi nhận ra mình cần chạy npm installđể cài đặt node_modulesvà sau đó nó hoạt động.


Xóa node_modules + npm cài đặt đã giúp tôi tiếp tục. Cảm ơn!
Brandon Barkley


0

Cách khắc phục đối với tôi là cài đặt cục bộ webpack dưới dạng devDependency. Mặc dù tôi có nó vì devDependenciesnó không được cài đặt trong thư mục node_modules. Vì vậy, tôi đã chạy npm install --only=dev


-1

Đôi khi npm install -g webpack không lưu đúng cách. Tốt hơn nên sử dụng npm cài đặt webpack --save . Nó đã làm việc cho tôi.


1
-g cài đặt trên toàn cầu (không phải dự án cục bộ node_modules + package.json của bạn) trong khi - lưu cài đặt cục bộ (trong node_modules + package.json cục bộ của bạn) nên câu trả lời này sai.
George

-1

Tôi đã gặp vấn đề tương tự và tôi không thể tìm ra nó. Tôi đã xem qua từng dòng mã và không thể tìm thấy lỗi của mình. Sau đó, tôi nhận ra rằng tôi đã cài đặt webpack vào sai thư mục. Lỗi của tôi là không chú ý đến thư mục mà tôi đang cài đặt webpack.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.