6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

デバッグ用プロキシをさくっと立ち上げるコマンド"replocal"を作った

Last updated at Posted at 2015-11-25

replocal

**replocal**は、Webデバッグ用のローカルプロキシを起動するコマンドラインツールです。

replocalのプロキシサーバは、特定のHTTPリクエストをキャッチして、Webコンテンツをローカルファイルの内容に置き換えます。たとえば既存のWebサイトに対して、JSだけローカルの開発コードに差し替えて検証したい…といったときに役立ちます。

ちょっとしたデバッグの際、FiddlerCharlesを使わずにコマンド一発で起動できるツールがあると便利かと思い作りました。

$ replocal example.com

直接接続だと本来のコンテンツ、プロキシを差すとローカルファイルが表示されます。

replocal

インストール

Node.jsを使っています。npmでインストールします。

$ npm install -g replocal

使い方

$ replocal example.com

コマンドを実行すると、localhost:8888にプロキシサーバが立ち上がります。

このプロキシを差してhttp://example.com/にアクセスすると、本来のページの代わりにカレントディレクトリ内のindex.htmlが表示されます。
ローカルにindex.htmlがない場合は、元のページがそのまま見えます。

もちろんCSSやJavaScript、画像などを置き換えることもできます。ディレクトリの階層も反映されます。

コマンド詳細

replocal [options] <hostname> [<directory>]

デフォルトの設定では、カレントディレクトリが対象サイトのドキュメントルートに対応します。
第2引数<directory>を指定すると、他のローカルフォルダをドキュメントルートにマッピングできます。

また、-p, --portオプションを使って、プロキシサーバの起動ポートを変更できます。

$ replocal --port=9999 example.com path/to/docroot

# Proxy server is running on http://localhost:9999
#   Target website : example.com
#   Document root  : path/to/docroot

オプションの一覧は、replocal --helpドキュメントを参照してください。

課題点

  • HTTPSに対応していません。技術的には対応可能ですが、環境ごとのセットアップが別途必要で少し難しいです。
  • 深い階層のページを置き換えるには、ローカルにもサブディレクトリをたくさん切って再現しないといけません。頑張れば、特定のURL配下をターゲット指定できるようになるかも…。

GitHubリポジトリ

https://github.com/htanjo/replocal

ご意見やご要望がありましたら、IssuesPull requestsまで。日本語大丈夫デース!

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?