Lỗi: Không thể tìm thấy mô-đun 'webpack'


151

Tôi mới bắt đầu với webpack và đang gặp khó khăn khi lấy mẫu nhiều điểm nhập để xây dựng. Tệp webpack.config.js trong ví dụ bao gồm dòng

 var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");

lỗi với tôi

Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'

Tìm kiếm xung quanh, tôi tìm thấy các ví dụ khác về việc sử dụng CommonsChunkPlugin với biểu thức

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");

mà không có lỗi

ReferenceError: webpack is not defined

Một số tìm kiếm khác tìm thấy một số ví dụ bao gồm

var webpack = require('webpack');

và bản dựng của tôi bây giờ thất bại với

Error: Cannot find module 'webpack'

Tôi không biết làm thế nào để tiến hành.


2
Bạn đã chạy npm install webpacktrước?
Julian Ewald

Đúng. Webpack được cài đặt và làm việc trên các ví dụ khác. Đó là khi cố gắng thêm plugin cho ví dụ nhiều điểm mà tôi gặp rắc rối.
Ed.

Error: Cannot find module 'webpack'là một lỗi nút. Vì vậy, điều này không có gì để làm với chính webpack (afaict). Có vẻ như nút đang tìm kiếm trong các thư mục sai ...
Julian Ewald

6
Tôi hiểu rồi, tôi npm install -g webpackcũng không làm việc. Nhưng nó thực hiện với npm install webpack- đảm bảo bạn đang ở trong thư mục gốc của ứng dụng khi bạn gọi npm install webpackrồi kiểm tra xem mô-đun có tồn tại trong node_modulesthư mục không. Nó cũng có vẻ như webpacknhu cầu fsevents(không bắt buộc) mô-đun trên các hệ thống Linux - Tôi đang sử dụng Windows vì vậy tôi không chắc chắn - cố gắng cài đặt fseventscũng
AndreiDMS

3
Như tôi đã nói ở trên, cài đặt toàn cầu cũng không hoạt động với tôi, vì vậy hãy thử cài đặt webpacktrong thư mục ứng dụng cục bộ, sử dụng npm install webpack, không có-g
AndreiDMS

Câu trả lời:


272

Liên kết gói cài đặt toàn cầu với dự án của bạn

npm link webpack

7
Đây là câu trả lời đơn giản nhất hiện có.
Thomas W

1
Cài đặt này ảnh hưởng đến tập tin nào? Tôi không thấy bất kỳ thay đổi nào đối với các tập tin json. Bạn có thể vui lòng giải thích?
Royi Namir

Dường như không có gì để bỏ liên kết. webpack-dev-server bị sập sau đó.
Sinh vật phù du

Sau một tháng không thể làm cho nó hoạt động, tôi đã rất gần để từ bỏ và tiếp tục làm việc với Angularjs. Điều này cuối cùng đã làm việc! Cảm ơn bạn.
NestorArturo

Tôi đang cài đặt webpack, nhưng tôi chạy webpack mà không có bất kỳ thông số nào hiển thị, loại thông báo này: bạn muốn cài đặt cái nào (webpack-cli / web-lệnh)
Ng Sharma

59

Trong khi làm việc trên windows, tôi đã cài đặt webpack cục bộ và nó đã khắc phục vấn đề của tôi

Vì vậy, trên dấu nhắc lệnh của bạn, hãy chuyển đến thư mục mà bạn muốn chạy webpack, cài đặt webpack cục bộ (không có -g) và tận hưởng ...


10
nhưng bạn đã không đề cập đến cách cài đặt nó "cục bộ"
jpganz18

cục bộ là npm cài đặt webpack, không sử dụng -g như đã đề cập. Điều này làm việc trong trường hợp của tôi.
Honza P.

24

Có vẻ là một vấn đề phổ biến của Windows. CÁi này đã sửa nó giúp tôi:

Nodejs không thể tìm thấy mô-đun cài đặt trên Windows?

"Thêm một biến môi trường được gọi NODE_PATHvà đặt nó thành %USERPROFILE%\Application Data\npm\node_modules(Windows XP), %AppData%\npm\node_modules(Windows 7) hoặc bất cứ nơi nào npm kết thúc việc cài đặt các mô-đun theo hương vị Windows của bạn. Để được thực hiện với nó một lần và mãi mãi, hãy thêm nó làm biến hệ thống trong tab Nâng cao của hộp thoại Thuộc tính Hệ thống (chạy control.exe sysdm.cpl, System, 3). "

Lưu ý rằng bạn thực sự không thể sử dụng một biến môi trường khác trong giá trị của NODE_PATH. Đó là, không chỉ sao chép và dán chuỗi đó ở trên, mà đặt nó thành một đường dẫn được giải quyết thực tế nhưC:\Users\MYNAME\AppData\Roaming\npm\node_modules


1
không hoạt động với tôi trên Windows 10. Không có node_modulesthư mục nào trong C:\Users\MYNAME\AppData\Roaming\npm`. I tried to set giá trị NODE_PATH` C:\Program Files (x86)\nodejs\node_modulesnhưng nó không giúp ích gì
VB_

3
Hoạt động tốt với tôi trên Windows 10 : setx NODE_PATH %AppData%\npm\node_modules. Bạn có thể cần phải khởi động lại cmdtrước khi NODE_PATHbiến có sẵn hoặc cũng có thể chạy set NODE_PATH=%AppData%\npm\node_modules.
Nux

23

Tôi đã giải quyết vấn đề tương tự bằng cách cài đặt lại, thực hiện các lệnh này

rm -Rf node_modules
rm -f package-lock.json
npm install

rmluôn luôn là một lệnh nguy hiểm, đặc biệt là với -f, xin lưu ý rằng trước khi thực hiện nó !!!!!


2
gói-lock.json là thủ phạm
Sérgio S. Filho

17

Chạy các lệnh bên dưới trong Terminal:

npm install --save-dev webpack

npm install --save-dev webpack-dev-server


9

Tôi đã gặp vấn đề này trên OS X và dường như nguyên nhân là do phiên bản không khớp giữa cài đặt toàn cầu webpackvà cài đặt cục bộ của tôi webpack-dev-server. Cập nhật cả hai lên phiên bản mới nhất đã thoát khỏi vấn đề.


điều đó cũng có hiệu quả với tôi, vì vậy tôi cho rằng nó cũng đáng để xem xét trong các tình huống khác nhau nếu bạn gặp vấn đề này.
JL Peyret

2

Nếu bạn đã cài đặt gói nút và vẫn nhận được thông báo rằng gói không được xác định, bạn có thể gặp sự cố với liên kết PATH với tệp nhị phân. Chỉ cần làm rõ một nhị phân và thực thi về cơ bản làm cùng một việc, đó là thực thi một gói hoặc ứng dụng. ei webpack ... thực thi gói webpack nút.

Trong cả Windows và Linux đều có thư mục nhị phân toàn cầu. Trong Windows tôi tin rằng nó giống như C: // Windows / System32 và trong Linux, đó là usr / bin. Khi bạn mở dấu nhắc thiết bị đầu cuối / lệnh, cấu hình của nó sẽ liên kết biến PATH với thư mục bin chung để bạn có thể thực thi các gói / ứng dụng từ nó.

Dự đoán tốt nhất của tôi là cài đặt webpack trên toàn cầu có thể không đặt thành công tệp thực thi trong thư mục nhị phân toàn cầu. Nếu không có tệp thực thi ở đó, bạn sẽ nhận được thông báo lỗi. Nó có thể là một vấn đề khác, nhưng có thể an toàn rằng nếu bạn ở đây đọc nó, việc chạy webpack trên toàn cầu không hiệu quả với bạn.

Giải pháp của tôi cho vấn đề này là loại bỏ việc chạy webpack trên toàn cầu và liên kết PATH với thư mục nhị phân node_module, đó là /node_modules/.bin.

WINDOWS: thêm node_modules / .bin vào PATH của bạn. Dưới đây là hướng dẫn về cách thay đổi biến PATH trong windows.

LINUX: Đi đến root dự án của bạn và thực hiện điều này ...

export PATH:$PWD/node_modules/.bin:$PATH 

Trong Linux, bạn sẽ phải thực thi lệnh này mỗi khi mở terminal. Liên kết này ở đây chỉ cho bạn cách thay đổi vĩnh viễn biến PATH của bạn.


1

Trên cửa sổ, tôi đã quan sát thấy vấn đề này xuất hiện nếu bạn không có quyền quản trị (nghĩa là bạn không phải là quản trị viên cục bộ) trên máy.

Như một người khác đề xuất, giải pháp dường như là cài đặt cục bộ bằng cách không sử dụng -ggợi ý.


1

Mở dấu nhắc lệnh npm và thư mục giải pháp cd và sau đó chỉ cần chạy gói web npm link trong NPM cmd prommt và xây dựng lại ..


1

Bạn có thể thử điều này.

npm install --only=dev

Nó làm việc cho tôi.


0

Không có gì được đề xuất ở trên làm việc cho tôi (bao gồm cả biến NODE_PATH). Tôi đã tạo một liên kết sym của "node_modules" từ thư mục cục bộ của mình đến AppData toàn cầu (ví dụ bên dưới) và nó hoạt động như bùa mê.

C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
C:\essportreact\day1>webpack
Hash: 2a82a67f90f9aa05ab4a
Version: webpack 1.15.0

0

Chỉ cần phát hiện ra rằng sử dụng thiết bị đầu cuối Atom IDE không cài đặt phụ thuộc cục bộ (có thể là lỗi hoặc chỉ tôi). Cài đặt git bash bên ngoài và chạy các lệnh npm một lần nữa làm việc với tôi


0

Đối với tôi, đó là một phản hồi lỗi sai.

có lỗi cấu hình trong webpack.config.js,

xóa tập tin và bắt đầu giải quyết vấn đề của tôi


0

Tôi đã có rất nhiều vấn đề khi xây dựng một ứng dụng .NET Core 2.0 rất đơn giản để xây dựng trong VS 2017. Đây là lỗi từ AppVeyor, tuy nhiên về cơ bản nó cũng giống như vậy (một số đường dẫn bị bỏ qua để bảo mật):

Thực hiện xây dựng Webpack chạy đầu tiên ...

module.js: lỗi ném 327;

EXEC: error: Không thể tìm thấy mô-đun '........ / node_modules / webpack / bin / webpack.js'

tại Function.Module._resolveFilename (module.js: 325: 15)

tại Function.Module._load (module.js: 276: 25)

tại Function.Module.runMain (module.js: 441: 10)

khi khởi động (node.js: 140: 18)

tại node.js: 1043: 3

csproj (25,5): lỗi MSB3073: Lệnh "node node_modules / webpack / bin / webpack.js --config webpack.config.vendor.js" đã thoát với mã 1.

Thiết lập thất bại.

Tôi vấp phải câu hỏi và câu trả lời này , và tôi nhận thấy cá thể địa phương của tôi cũng có cùng một dấu hiệu cảnh báo đối với {Project Root} -> Dependencies -> npmthư mục. Nhấp chuột phải và nhấn "Khôi phục gói" đã tải mọi thứ đúng cách và tôi đã có thể xây dựng thành công.


0

npm link webpack làm việc cho tôi.

Cấu hình webpack của tôi: "webpack": "^ 4.41.2", "webpack-dev-server": "^ 3.9.0", "webpack-cli": "^ 3.3.10"


0

Cài đặt cả webpack và CLI trên toàn cầu làm việc cho tôi.

npm i -g webpack webpack-cli
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.