2017-10-20 298 views
1

我試圖運行一個基本的http服務器來測試一些html文件,我一直運行到相同的錯誤。http-server命令沒有找到

我做 sudo npm install -g http-server一堆次,但每次我嘗試

simple git:(master) http-server 

我不斷收到此錯誤:

zsh: command not found: http-server

我試過其他變化,例如基於HTTP服務器/ 8000,我試過使用不同的命令語法,但似乎沒有工作。

我NPM的版本是5.5.1,我的節點版本是8.3.0,和我的操作系統是Mac OSX上塞拉利昂v10.12.6

請讓我知道如果你能幫助或者如果你看到什麼,我做錯了,我只是不知道。

編輯:微小的更新我能夠得到一個服務器去與python,但我真的想知道爲什麼這不起作用。

編輯2:問題解決了謝謝!

回答

2

你可能沒有你的npm二進制文件在PATH

通過運行echo $PATH,確保您的npm二進制文件位於路徑中。您應該看到,在打印輸出的地方,是這樣的:

/home/bob/.npm-packages/bin:/usr/lobal/bin:/other/paths/that/contain/bins 

/home/bob/.npm-packages/bin就是每當我跑npm -g install whatever我NPM二進制文件的安裝目錄。

如果您沒有看到類似內容,請閱讀Fixing npm permissions,它會引導您確保您的環境設置正確。備選方案2明確談到了修復PATH

,我通常做的是添加這一切對我.bashrc.bashprofile這是在你的home目錄另一個方便的事情:

  • 在MacOS /Users/username/
  • 在* nix:/home/username/

.bashrc

NPM_PACKAGES="${HOME}/.npm-packages" 
PATH="$NPM_PACKAGES/bin:$PATH" 

但是,由於它看起來像您正在使用zshell,因此您必須使用rc文件遵循的任何約定。


您可以修復該問題,或者您可以在項目的包級別安裝http-server,然後通過npm命令啓動它。

運行npm install --save-dev http-server

並放入您的包。JSON:

{ 
    "scripts": { 
     "start": "http-server ." 
    } 
} 

,然後運行

npm start 
+0

你也可以使用'i',而不是'install'和'-D',而不是'--save-dev'如果你不討厭你的手指。 –

+0

我剛查過,我沒有看到它,我該如何解決這個問題? –

+0

哦,謝謝,我會看到,如果我能得到那個工作 –

2

如果你這樣做sudo npm install -g,你沒有一個npm前綴集,該文件是可能安裝在/usr/local/bin,但它可以安裝更多或更少的地方。無論目錄它被安裝到可能不是在你的$PATH,所以你應該弄清楚它的安裝位置,然後更新您的$PATH包含它。

我會強烈建議您避免避免運行sudo與NPM。相反,你可以在你的NPM配置更新prefix(或~/.npmrc手動更新到類似prefix=~/.npm但它給你,然後你還必須確保~/.npm/bin在您的路徑。

即使全球封裝可很方便,有時,如果它們被設置到具體的項目,我認爲這是最好只安裝它作爲該項目的一部分,並運行它:

cd /path/to/project/with/http-server 
npm install http-server 

# any of: 
npx http-server 
node_modules/.bin/http-server 

此外,如果你有一個package.json#scripts,你可以引用任何本地安裝二進制如:

"scripts": { 
    "server": "http-server" 
} 

,然後使用npm run server