Không tìm thấy lệnh Gulp sau khi cài đặt


97

Tôi đã cài đặt gulp (trên toàn cầu) và có vẻ như nó đã hoạt động vì nó chạy mã này:

├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)

Nhưng khi tôi gõ gulpnó nói-bash: gulp: command not found

Có ai biết cái gì đang xảy ra không?


4
Để giải quyết điều này, tôi đã làm sudo install gulp -g. điều đó đã hiệu quả
Mr_Green

9
Mr_Green nghĩa: sudo NPM cài đặt ngụm -g
jasonleonhard

Câu trả lời:


174

Hóa ra rằng npm đã được cài đặt trong thư mục sai vì vậy tôi phải thay đổi "tiền tố cấu hình npm" bằng cách chạy mã này:

npm config set prefix /usr/local

Sau đó, tôi đã cài đặt lại gulp trên toàn cầu (với -g param) và nó hoạt động bình thường.

Bài viết này là nơi tôi tìm thấy giải pháp: http://webbb.be/blog/command-not-found-node-npm


2
Cảm ơn! Tôi cũng đã giải quyết được vấn đề của mình :)
cuộc nổi loạn

2
Kinh ngạc. Cảm ơn bạn.
Andrew

2
Cũng là giải pháp giúp tôi
Sergey Andreev

2
Cảm ơn, điều này đã làm việc. Thật ki cục. Tôi đã cài đặt nó trên macbook 1, nó hoạt động, macbook 2, không hoạt động, vì vậy tôi phải làm điều này. Khùng.
axelvnk

2
Tôi tự hỏi tại sao StackOverflow không hiển thị đây là câu trả lời đầu tiên! Rõ ràng nó là một trong những chính xác.
Anand Sainath

58

Không chắc tại sao câu hỏi bị bỏ phiếu thấp, nhưng tôi gặp vấn đề tương tự và làm theo bài đăng trên blog được đề xuất giải quyết vấn đề. Một điều tôi nên nói thêm là trong trường hợp của tôi, khi tôi chạy:

npm config set prefix /usr/local

Tôi khẳng định npm root -gđã được trỏ đến /usr/local/lib/node_modules/npm, nhưng để cài đặt gulptrong /usr/local/lib/node_modules, tôi đã sử dụng sudo:

sudo npm install gulp -g


Tôi đã tìm kiếm giải pháp này! CẢM ƠN BẠN! Lệnh: npm config set prefix /usr/localGIẢI QUYẾT vấn đề!
north.inhale

21

Nếu bạn đang sử dụng tcsh(là trình bao mặc định của tôi trên Mac OS X), bạn có thể chỉ cần nhập rehashvào trình bao sau khi quá trình cài đặt hoàn tất:

npm install -g gulp

ngay sau đó là:

rehash

Mặt khác, nếu đây là lần đầu tiên bạn cài đặt gulp, trình bao của bạn có thể không nhận ra rằng có một tệp thực thi mới được cài đặt - vì vậy bạn cần phải bắt đầu một trình bao mới hoặc nhập rehashvào trình bao hiện tại.

(Về cơ bản, đây là việc một lần cho mỗi lệnh bạn cài đặt trên toàn cầu.)


17

Tôi nhận ra rằng đây là một chủ đề cũ, nhưng đối với Future-Me và hậu thế, tôi nghĩ rằng tôi nên thêm hai xu của mình xung quanh cuộc thảo luận "running npm as sudo". Tuyên bố từ chối trách nhiệm: Tôi không sử dụng Windows. Các bước này chỉ được chứng minh trên các máy không phải Windows, cả ảo và vật lý.

Bạn có thể tránh phải sử dụng sudo bằng cách thay đổi quyền đối với thư mục mặc định của npm.


Cách thực hiện: thay đổi quyền để chạy npm mà không cần sudo

Bước 1: Tìm xem thư mục mặc định của npm ở đâu.

  • Để thực hiện việc này, hãy mở thiết bị đầu cuối của bạn và chạy:
    npm config get prefix

Bước 2: Tiếp tục, dựa trên kết quả của lệnh đó:

  • Tình huống một: Thư mục mặc định của npm là /usr/local
    Đối với hầu hết người dùng, đầu ra của bạn sẽ hiển thị rằng thư mục mặc định của npm là / usr / local, trong trường hợp đó, bạn có thể chuyển sang bước 4 để cập nhật quyền cho thư mục.
  • Tình huống thứ hai: thư mục mặc định của npm là /usrhoặc /Users/YOURUSERNAME/node_moduleshoặc /Something/Else/FishyLooking
    Nếu bạn thấy rằng thư mục mặc định của npm không phải là / usr / local mà thay vào đó là thứ mà bạn không thể giải thích hoặc có vẻ khó hiểu, bạn nên chuyển sang bước 3 để thay đổi thư mục mặc định cho npm, hoặc bạn có nguy cơ xáo trộn các quyền của mình trên quy mô lớn hơn nhiều.

Bước 3: Thay đổi thư mục mặc định của npm:

  • Có một số cách để thực hiện việc này, bao gồm tạo một thư mục dành riêng cho các cài đặt toàn cầu và sau đó thêm thư mục đó vào $ PATH của bạn, nhưng vì / usr / local có thể đã nằm trong đường dẫn của bạn, tôi nghĩ đơn giản hơn là chỉ cần thay đổi npm's thư mục mặc định cho đó. Như vậy: npm config set prefix /usr/local
    • Để biết thêm thông tin về các phương pháp tiếp cận khác mà tôi đã đề cập, hãy xem tài liệu npm tại đây .

Bước 4: Cập nhật quyền trên thư mục mặc định của npm:

  • Khi bạn đã xác minh rằng thư mục mặc định của npm ở một vị trí hợp lý, bạn có thể cập nhật các quyền trên đó bằng cách sử dụng lệnh:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Bây giờ bạn sẽ có thể chạy npm <whatever>mà không cần sudo. Lưu ý: Bạn có thể cần phải khởi động lại thiết bị đầu cuối của mình để những thay đổi này có hiệu lực.


7

Tôi đã gặp sự cố tương tự, tôi đã thực hiện các bước sau và nó hoạt động. Đi đến thiết bị đầu cuối mac và thực hiện các lệnh,

1.npm cấu hình đặt tiền tố / usr / local

2.sudo chown -R $ (whoami) $ (npm config get prefix) / {lib / node_modules, bin, share}

Hai lệnh này sẽ đặt đúng đường dẫn npm và bạn không còn phải sử dụng sudo trong npm nữa. Tiếp theo gỡ cài đặt gulp

  1. npm gỡ cài đặt gulp

  2. Installl gulp một lần nữa mà không có sudo, npm cài đặt gulp -g

Điều này sẽ hoạt động !!


4

Tôi đã gặp sự cố này với việc nhận được "lệnh không tìm thấy" sau khi cài đặt nhưng tôi đã được cài đặt vào / usr / local như được mô tả trong giải pháp ở trên.

Sự cố của tôi dường như do tôi chạy cài đặt với sudo. Tôi đã làm như sau.

  1. Loại bỏ cơn ngộp một lần nữa với sudo
  2. Thay đổi chủ sở hữu của / usr / local / lib / node_modules thành người dùng của tôi
  3. Đang cài đặt lại gulp mà không có sudo. "npm install gulp -g"

1
Có vẻ hợp lý hơn là tôi không cần cài đặt bất cứ thứ gì cục bộ với sudo và tại sao tôi lại cần sử dụng sudo - đối với tôi khi tôi bắt đầu sử dụng sudo thì mọi thứ sẽ hỏng khi bạn không chạy dòng lệnh dưới dạng sudo - như trong hàng ngày của nhà phát triển dưới quyền người dùng. Tôi có xu hướng nghĩ rằng cách của bạn là đúng hơn nhiều - sudo không phải lúc nào cũng là câu trả lời tốt nhất mặc dù nó có vẻ đúng lúc này.
hạ cánh

3

Bạn cần phải làm điều này npm install --global gulp. Nó hoạt động cho tôi và tôi cũng gặp vấn đề này. Đó là vì bạn đã không cài đặt gói này trên toàn cầu.


3

Nếu bạn đang sử dụng máy Mac, hãy sử dụng quyền root

sudo npm install gulp-cli --global

Để kiểm tra xem nó đã được cài đặt chạy chưa

gulp -v

Phiên bản CLI: 2.2.0 (Đầu ra)

Phiên bản địa phương: Không xác định


1

Tôi đã làm được điều này trên Win10 bằng cách sử dụng kết hợp các câu trả lời ở trên và các nơi khác. Đăng ở đây cho những người khác và tương lai của tôi.

Tôi đã làm theo hướng dẫn từ đây: https://gulpjs.com/docs/en/getting-started/quick-start nhưng ở bước cuối cùng sau khi nhập gulp --version, tôi nhận được thông báo -bash: gulp: command not found

Để khắc phục điều này:

  1. Tôi đã thêm% AppData% \ npm vào biến môi trường Đường dẫn của mình
  2. Đóng tất cả gitbash (cmd, powershell, v.v.) và khởi động lại gitbash.
  3. Sau đó, nuốt chửng - phiên bản hoạt động

Ngoài ra, hãy tìm phần bên dưới để biết lý do tại sao không cài đặt gulp trên toàn cầu và cách gỡ bỏ nó (tuy nhiên, không chắc liệu điều này có được khuyến khích hay không):

gulp- "cli" là viết tắt của gì?

Làm cách nào để gỡ cài đặt Gulp CLI khỏi NPM trên toàn cầu?


0

Trong trường hợp của tôi, thêm sudo trước khi npm cài đặt lệnh gulp đã giải quyết không tìm thấy sự cố

sudo npm install


0

Nếu bạn muốn giữ nguyên tiền tố của mình, chỉ cần xuất nó là bin dir sang biến PATH của bạn:
export PATH=$HOME/your-path/bin:$PATH
Tôi đã thêm dòng này vào $ HOME / .profile của mình và lấy nguồn nó.

Đặt tiền tố để /usr/localbạn sử dụng sudo, vì vậy tôi muốn có nó trong dir người dùng của mình. Bạn có thể kiểm tra tiền tố của mình với npm prefix -g.

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.