【解決問題】npm全局安裝後仍然提示找不到命令

慘案

我正常使用命令安裝express。node

$ npm install -g express-generator

而後bash就提示安裝成功express

/Users/majialun/.npm-global/bin/express -> /Users/majialun/.npm-global/lib/node_modules/express-generator/bin/express-cli.js
+ express-generator@4.16.1
updated 1 package in 2.123s

而後運行 express,按道理這個時候應該讓我建立項目了,可是系統提示:npm

bash: express: command not found

其實不光是express,我本身寫的腳本,也出現這個問題,全局安裝成功,可是,經過bash就是調用不出來。ruby

偵查

先看看全局有哪些path變量bash

$ echo $PATH

而後就出現了不少code

/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/Users/majialun/.rvm/bin:/Users/majialun/Documents/flutter/flutter/bin:/Users/majialun/.npm-global/bin/express:/Users/majialun/.rvm/bin:/Users/majialun/Documents/flutter/flutter/bin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/Users/majialun/.rvm/bin:/Users/majialun/Documents/flutter/flutter/bin:/Users/majialun/.npm-global/bin/express:/Users/majialun/.rvm/bin:/Users/majialun/.npm-global/bin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/Users/majialun/.rvm/bin:/Users/majialun/Documents/flutter/flutter/bin:/Users/majialun/.npm-global/bin/express:/Users/majialun/.rvm/bin:/Users/majialun/Documents/flutter/flutter/bin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/majialun/.rvm/gems/ruby-2.4.1/bin:/Users/majialun/.rvm/gems/ruby-2.4.1@global/bin:/Users/majialun/.rvm/rubies/ruby-2.4.1/bin:/Users/majialun/.rvm/bin:/Users/majialun/Documents/flutter/flutter/bin

這個時候咱們發現太多了,可是不要慌,剛纔安裝Express的時候,有一個提示顯示了npm的全局腳本掛在哪一個path下。jade

再看看安裝成功的提示:generator

/Users/majialun/.npm-global/bin/express -> /Users/majialun/.npm-global/lib/node_modules/express-generator/bin/express-cli.js
+ express-generator@4.16.1
updated 1 package in 2.123s

咱們能夠看到,腳本安裝在/Users/majialun/.npm-global/bin,這個目錄裏就是所有的全局腳本,注意是bin目錄,express只是這個目錄下的一個而已。it

而後咱們仔細在全局的path裏找,發現並不存在這個路徑……我也不知道我是怎麼把路徑搞沒的,我在公司的Macbook Pro一切正常,可是隨身帶的Macbook就缺失路徑。io

破案

咱們直接去根目錄(/Users/majialun/)下,顯示隱藏文件後,看看有沒有.bash_profile,沒有就新建一個,有就直接修改,添加進去一個路徑:

export PATH=$PATH:/Users/majialun/.npm-global/bin:$PATH

注意這個路徑是從上面複製下來的,每一個人的不同,總之從安裝成功的提示裏,複製到/bin這裏結束就能夠了。
好了以後,在終端裏打source,而後把.bash_profile 拖進來,就有了:

$ source /Users/majialun/.bash_profile

執行一下而後重啓終端,跑起來試試看:

majialun$ express

  warning: the default view engine will not be jade in future releases
  warning: use `--view=jade' or `--help' for additional options

destination is not empty, continue? [y/N]

沒有not found 的報錯,問題解決。

本文轉載須要通過做者贊成,不然禁止任何轉載。

相關文章
相關標籤/搜索