1. ホーム
  2. npm

[解決済み] httpサーバーをローカルで起動する方法

2022-03-06 04:35:51

質問

クローンを作りました 角種 ノードを使用している http-server で、以下の設定で完璧に動作しています。

<ブロッククオート

コマンド : npm start (プロジェクトのルートから)

以下の設定を package.json ファイルを作成します。

"start": "http-server -a localhost -p 8000 -c-1",
Link to file

しかし、私はこのサーバーを直接起動することができません。例えば、プロジェクトのルートから、これらのコマンドのどれも動作しません。

>  angular-seed npm http-server  
>  angular-seed node http-server
>  angular-seed http-server

これ(http-server)は、ここ(インストールされたルート)で利用できるはずではありませんか?どなたか、これがどのように動作しているのか、また、どのようにしてプロジェクトのルートから直接使用できるのか、説明していただけませんか?

グローバルにインストールすれば問題ないのでしょうが、それには興味がないのです。

解決方法は?

を実行しているとき npm install をプロジェクトのルートにインストールすると、npm の依存関係をすべてプロジェクトの node_modules ディレクトリを作成します。

を見てみると、プロジェクトの node_modules というディレクトリがあるはずです。 http-server を保持しています。 http-server パッケージ、および .bin このフォルダは、インストールされた依存関係の実行バイナリを保持します。このフォルダには、インストールされた依存関係の実行バイナリが格納されます。 .bin ディレクトリには http-server バイナリ (またはそのリンク) を作成します。

ですから、あなたの場合、起動時に http-server を実行することで、プロジェクトのルートディレクトリから(代わりに npm start ):

./node_modules/.bin/http-server -a localhost -p 8000 -c-1

を実行したのと同じ効果が得られるはずです。 npm start .

Bashシェルを使っている場合は、この作業を簡略化するために ./node_modules/.bin フォルダを $PATH 環境変数で指定します。

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

これで、このフォルダがあなたのパス上に置かれ、単に

http-server -a localhost -p 8000 -c-1