Cài đặt Npm không thể tìm thấy mô-đun 'semver'


196

Tôi không thể sử dụng npm installbằng cách sử dụng dấu nhắc lệnh trong NodeJS. Tôi đang gặp những lỗi này khi chạy npm install:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

4
Tôi cũng gặp vấn đề tương tự, bạn có thể sử dụng sợi, thay vì npm
Wojciech Maślanka

1
Bạn có đang sử dụng sợi để cài đặt gói.json không?
anandharshan

1
Chỉ cần cài đặt lại npm
Nuno Ferro

Câu trả lời:


401

Tôi đã có những lỗi giống nhau. npm uninstall npm -g, rm -rf node_modulesđã không giúp tôi, bởi vì khi tôi cố gắng tôi đã nhận được Error: Cannot find module 'semver'. Nhưng tôi giải quyết vấn đề của mình bằng các bước này (điều này sẽ xóa các mô-đun toàn cầu khác mà bạn có thể đang sử dụng):

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf ~/.npm
  • brew uninstall --force node
  • brew install node

Hy vọng điều này sẽ giúp những người đang gặp vấn đề tương tự.


3
Đã sử dụng điều này trên hai máy khác nhau chạy El Capitan, hoạt động trong cả hai trường hợp.
Kamikaze Raser

7
Sử dụng brew uninstall --force nodeđể xóa tất cả các phiên bản
xóa

5
chỉ cần cài đặt lại npm. curl -0 -L https://npmjs.org/install.sh | sudo shsau khi xóa thư mục npm
Baryon Lee

17
Nếu Sợi đã được cài đặt, brew uninstall --ignore-dependencies nodehoạt động cho tôi ở những nơi brew uninstall --force nodekhông.
Maxime Lafarie

13
Đó là lỗi của tôi khi dán các lệnh một cách mù quáng, nhưng sudo rm -rf /usr/local/lib/node_moduleskhiến tôi mất các mô-đun toàn cầu mà tôi sử dụng như máy chủ gulp và selenium. Hãy mệt mỏi vì điều này
AmmarCSE

84

Tôi đang đối mặt với cùng một vấn đề ở đây.

Nếu điều này xảy ra ngay sau khi bạn chạy brew install yarnhãy thử chạy yarn global add npmvà voilà - đã sửa!


2
Giải pháp này rất hiệu quả đối với tôi và đơn giản hơn nhiều so với các giải pháp thay thế ở đây. Tôi nghĩ rằng sợi có thể tải xuống npm nếu cài đặt bị lỗi truy cập / quyền truy cập trong quá trình nâng cấp / cài đặt.
Slbox

52

Trên MS Windows, giải pháp là gỡ bỏ %APPDATA%\npmvà cài đặt lạinode


Tôi ước tôi có thể nhân đôi số phiếu này cho Windows. Có một gotcha: Thư mục AppData được ẩn theo mặc định, vì vậy tôi không nghĩ rằng nó thực sự được cài đặt tại vị trí này.
Ringo

7
Trên cửa sổ chỉ cần sửa chữa không cần cài đặt lại
MotKohn

2
@MotKohn Repaire gì? Một cái chân? Một khúc xương? xe hơi? "Sửa chữa" cái gì?!
samayo

2
@samayo Trên Windows nơi bạn cài đặt có tùy chọn sửa chữa. Xin lỗi đây là một nhận xét theo ngữ cảnh.
MotKohn

2
Cách tiếp cận này cũng hiệu quả với tôi trên máy tính xách tay Windows 8.1 Enterprise 64 bit của tôi. Tôi đã phải xóa cả thư mục "npm" cũng như "npm-cache", sau đó là gỡ cài đặt và cài đặt nút mới.
Eddie

46

Tôi đã có điều này quá, sau khi chạy brew install yarnngày hôm qua. Ít nhất, mọi thứ đều ổn cho đến lúc đó.

Tôi đã chạy rm -rf node_modulesvà cố gắng cài đặt lại, nhưng không có npmlệnh nào hoạt động.

Cuối cùng, tôi đã thực hiện bước khá đơn giản là cài đặt lại Node thông qua trình cài đặt Node chính thức cho Mac OS X.

https://nodejs.org/en/doad/

Bây giờ mọi thứ đều ổn Chỉ cần quay trở lại thư mục, chạy npm installvà nó đã thực hiện các mẹo.


npm installđã làm điều đó cho tôi. Tôi đã cài đặt tất cả các phụ thuộc từng cái một nhưng npm installđã làm tất cả chúng cùng một lúc. Cảm ơn.
tazboy

3
Tôi cũng có điều này xảy ra với tôi sau khibrew install yarn
Walter Martin Vargas-Pena

1
cài đặt lại node.js đơn giản từ trình cài đặt osx chính thức. cảm ơn!
La Mã

nó cũng xảy ra với tôi brew install yarn!! cái quái gì vậy, sợi
Movac

23

Trên Arch Linux , mẹo đã làm cho tôi là:

sudo pacman -Rs npm
sudo pacman -S npm

1
Tôi đã phải sử dụng sudo pacman -Rddđể loại bỏ bỏ qua các phụ thuộc, nhưng nó không giải quyết được vấn đề cho tôi. Cài đặt semver từ các gói vòm trong câu trả lời của Mathias Braun đã làm.
Pierre-Alexis Ciavaldini

15

Vừa gặp phải điều này trên Arch Linux 4.13.3, tôi đã giải quyết vấn đề bằng cách cài đặt lại semver:

pacman -S semver

8

Trên thực tế, nó đang lấy tham chiếu của các mô-đun được lưu trữ trước đó.

Giải pháp: Xóa thư mục npm-cache / npm trong thư mục cài đặt của nodejs. Trong các cửa sổ, nó nằm trong C: / Người dùng / Tên người dùng / Appdata / Chuyển vùng / npm (hoặc npm_cache). và cố gắng cài đặt lại.

Điều tương tự để làm trong bất kỳ hệ điều hành.


Đó là nó. Tôi gỡ cài đặt nút. Sau đó xóa cả npmnpm_cachetừ /Appdata/Roaming. Sau đó cài đặt lại nút. Có vẻ bộ nhớ cache bị đổ lỗi ở đó.
Saulius

7

Trong trường hợp của tôi trên macOS (10.13.6), khi tôi thực hiện lệnh sau

npm install -g react-native-cli

Tôi đã gặp lỗi này

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

Lỗi đã được giải quyết sau khi thực hiện lệnh

yarn global add npm

được đề xuất bởi @Ashoor


5

Đối với tôi, điều này xảy ra sau khi tôi cài đặt sợi trên toàn cầu. Để giải quyết vấn đề này, cài đặt npm bằng sợi và thực hiện.

yarn global add npm


2

Tôi đã có cùng một vấn đề nhưng nó đã được gây ra bởi một sự cố package-lock.json tập tin .

Xóa package-lock.jsonvà chạy npm installlại cố định nó cho tôi.


2

Đối mặt với vấn đề này khi tôi chạy npm installbằng phiên bản thấp hơn của nút. Sau đó, khi tôi nâng cấp lên phiên bản nút mới nhất và chạygulp , nó đã hiển thị lỗi này.

Để giải quyết, đã xóa node_modules và chạy lại npm install. Sau đó gulpchạy tốt.


1

Chỉ cần xóa thư mục / node_modules và thử lại. ;)

Bạn có thể sử dụng npm rmđể loại bỏ nó.

Bạn cũng có thể kiểm tra vấn đề này trên GitHub. Để cụ thể hơn về sự không nhất quán, hãy thử làm theo điều này :

Gỡ cài đặt

Thật buồn khi thấy bạn đi.

sudo npm uninstall npm -gHoặc, nếu thất bại,

sudo thực hiện gỡ cài đặt Thêm gỡ cài đặt nghiêm trọng

Thông thường, các hướng dẫn trên là đủ. Điều đó sẽ loại bỏ npm, nhưng để lại bất cứ thứ gì bạn đã cài đặt.

Nếu bạn muốn xóa tất cả các gói mà bạn đã cài đặt, thì bạn có thể sử dụng lệnh npm ls để tìm chúng, và sau đó npm rm để xóa chúng.

Để loại bỏ hành trình bị bỏ lại phía sau bởi npm 0.x, bạn có thể sử dụng tệp tập lệnh Clean-old.sh đi kèm. Bạn có thể chạy nó thuận tiện như thế này:

npm khám phá npm -g - sh scripts / clean-old.sh npm sử dụng hai tệp cấu hình, một cho cấu hình cho mỗi người dùng và một cho cấu hình toàn cầu (mọi người dùng). Bạn có thể xem chúng bằng cách thực hiện:

npm config get userconfig # defaults to ~ / .npmrc npm config get globalconfig # defaults to / usr / local / etc / npmrc Gỡ cài đặt npm không xóa các tệp cấu hình theo mặc định. Bạn phải tự gỡ bỏ chúng bằng tay nếu bạn muốn chúng biến mất. Lưu ý rằng điều này có nghĩa là các cài đặt npm trong tương lai sẽ không nhớ các cài đặt mà bạn đã chọn.


Cập nhật câu trả lời của tôi. Thử ngay bây giờ. Nếu nó không hoạt động, kiểm tra một cái gì đó cho tôi. Sao chép gói.json sang thư mục khác và thử sử dụng cài đặt npm.
Rodmentou

1
Bạn có thể dán gói.json của mình không?
Rodmentou

{"name": "không gian làm việc", "phiên bản": "0.0.0", "private": true, "scripts": {"start": "nút ./bin/www"}, "phụ thuộc": {" body-Parser ":" ~ 1.13.2 "," bson ":" ^ 0.2.22 "," cookie-Parser ":" ~ 1.3.5 "," debug ":" ~ 2.2.0 "," express " : "~ 4.13.1", "hbs": "~ 3.1.0", "nhà sư": "^ 1.0.1", "morgan": "~ 1.6.1", "phục vụ favicon": "~ 2.3 .0 "}," engine ": {" nút ":" 4.2.2 "}}
user2447562

Bạn đã thử chạy cài đặt npm với gói.json của mình trong một thư mục khác chưa?
Rodmentou

Tôi phải gỡ cài đặt cho node.js, sau khi cài đặt node.js .... tôi phải tạo ứng dụng lấy mẫu bằng cách sử dụng mean.thời gian đó tôi phải cài đặt lệnh npm intall, nhưng tôi gặp lỗi tương tự ... vui lòng đưa ra một số giải pháp cho tôi ....
user2448562

1

Cuối cùng tôi đã tìm ra điều này! Có, bạn phải gỡ cài đặt / xóa tất cả các tệp và cài đặt lại. NHƯNG MỘT SỐ NHỮNG BỆNH NHÂN NÀO LÀ TUYỆT VỜI ĐỂ XÓA BURNG QUY TRÌNH KHÔNG GIỚI HẠN. Đường dẫn tệp quá dài trong Node đến mức chúng không thể bị xóa. Bạn phải đổi tên đường dẫn tập tin.

Sau khi gỡ cài đặt Node, sử dụng Dấu nhắc lệnh, điều hướng đến ... \ Appdata \ roaming \ (sử dụng đường dẫn từ thông báo lỗi). Cố gắng xóa thư mục với del npm. Sau đó, nếu nó không cho phép bạn xóa một thư mục, hãy bắt đầu đổi tên các thư mục trong đường dẫn tệp trong thông báo lỗi tiếp theo thành "a" hoặc một cái gì đó ngắn. Bạn có thể phải làm điều này cho nhiều thư mục dọc theo đường dẫn. Sau đó, bạn sẽ có thể xóa! Sau đó cài đặt lại nút và nó sẽ hoạt động.



0

Trong trường hợp của tôi, chỉ cần chạy lại đã brew install yarnkhắc phục sự cố.


0

Tôi đã gặp phải rắc rối tương tự sau khi brew cài đặt sợi trên máy MacOs Sierra 10.12.6 của tôi. .

Vì vậy, tôi sử dụng n manager để cài đặt lại npm.

  • chuyển sang phiên bản nút khác (đối với trường hợp của tôi thành 8.0) bằng lệnh "n" với các tham số trống
  • hoặc cài đặt mới bằng "n xxx" trong đó xxx số phiên bản nút (tôi cần 6.9.1)
  • xóa phiên bản làm việc bằng "n rm xxx" trong đó xxx số phiên bản nút. sử dụng sudo nếu cần
  • cài đặt phiên bản làm việc bằng "n xxx" trong đó xxx số phiên bản nút. sử dụng sudo nếu cần
  • chuyển sang phiên bản làm việc của nút. (xem bước đầu tiên để tham khảo)

Tôi nghĩ rằng rắc rối có thể được gây ra rằng nút đã được cài đặt theo sudo cho trường hợp.


0

Đối với người dùng Mac, tôi đã thử cài đặt một loạt các phiên bản nút mới và gỡ cài đặt các phiên bản nút khác nhau. Điều đó đã không sửa chữa nó. Bạn phải xóa sạch hoàn toàn tất cả các cài đặt của bạn đầu tiên. Làm theo các hướng dẫn sau ... Làm cách nào để gỡ cài đặt hoàn toàn Node.js và cài đặt lại từ đầu (Mac OS X) .

Sau đó tải xuống phiên bản mới nhất của nút.


0

Tôi gặp vấn đề tương tự khi cài đặt trên AWS Linux. Tôi đã phải cài đặt nó vớisudo . Vì vậy, để giải quyết vấn đề này, tôi đã làm theo bước 3 từ bài viết này (đảm bảo có được phiên bản nút mới nhất)

https://www.hostingadvice.com/how-to/update-node-js-latest-version/

wget https://nodejs.org/dist/vx.x.x/node-vx.x.x-linux-x64.tar.xz
tar -C /home/aUser/node --strip-components 1 -xJf node-vx.x.x-linux.x64.tar.xz

Nhưng cài đặt nó vào thư mục nhà của người dùng /home/aUser/node. Sau đó thêm đường dẫn đó vào ĐƯỜNG của tôi.

export PATH=/home/aUser/node/bin:$PATH

Sau đó tôi đã có thể làm một npm installkhông có vấn đề.


0

Tôi đã đối mặt với vấn đề này trong khi chạy dự án trên phiên bản cao hơn của cli. Để giải quyết vấn đề này, bạn chỉ cần bình luận ra mô-đun @ angular-devkit / build-angular và một lần nữa bạn phải cài đặt lại nó thông qua

cài đặt npm @ angular-devkit / build-angular --save


0

Chỉ cần chắc chắn rằng đã semverđược cài đặt:npm install -g semver


1
npm không hoạt động, vì vậy bạn không thể cài đặt semver qua npm. Giải pháp tốt nhất là sử dụng sợi để cài đặt npm hoặc các gói bị thiếu
NFpeter

@NFpeter Tôi đã có chính xác vấn đề tương tự như đã nêu trong câu hỏi và đã khắc phục nó theo cách này, vì vậy npm đã làm việc (ít nhất là trong trường hợp của tôi).
Javarome

0

Đối với tôi, nó đã xảy ra trong khi nâng cấp lên gulp 4 từ gulp 3 trong dự án của tôi. Vì vậy, khi tôi chạy lệnh "gulp watch", nó đã gây ra lỗi tương tự cho tôi.

Có lẽ là do phiên bản không khớp so với gulp được cài đặt toàn cầu của tôi.

Vì vậy, hoặc nâng cấp gulp với cờ toàn cầu "-g" sẽ giúp ích, hoặc nếu không tôi đã làm theo điều này dưới đây

Tuy nhiên, tôi đã sử dụng "./node_modules/.bin/gulp watch" trong dự án của mình. Điều này đảm bảo rằng tất cả các phụ thuộc mà gulp cần chỉ được lấy từ node_modules.


0

Như được lưu ý bởi ẩn danh (?) Tại DeveloperReference.com, các bước bên dưới đã giải quyết "không thể tìm thấy mô-đun 'semver'" cho tôi khi chạy npm -install:

* "Tôi đã làm theo các bước này và nó đã giải quyết vấn đề của tôi gỡ cài đặt Node.js

  1. Xóa nội dung của các thư mục sau
    • C: \ Users \ {tên người dùng} \ AppData \ Roaming \ npm-cache
    • C: \ Người dùng \ {tên người dùng \ \ AppData \ Chuyển vùng \ npm
  2. C: \ Chương trình tập tin \ nodejs Sau đó cài đặt lại Node từ https://nodejs.org/en/ "*

https://html.developreference.com/article/12253101/Cannot+find+module+%27semver%27+When+installing +Npm


-1

Chỉ cần kiểm tra tập lệnh cài đặt sẵn của bạn nếu bạn có. Đôi khi để hạn chế các phiên bản nodenpmmột người cần chạy một dự án.

Nếu đó là trường hợp bạn cần cài đặt semverthủ công thông quanpm install -g semver


-2

Tôi gặp vấn đề tương tự và sửa nó bằng cách nâng cấp phiên bản Node của tôi

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.