SPA (Single Page Application) でWebアプリケーションを作る場合、HTMLの生成やREST APIはJavaScript/CSSの配信とは別のサーバーで行うものの、クラウド環境ではCloudFrontなりリバースプロキシなりが存在していて、結果全て同一ドメインで運用されていることがある。
この状況で、JavaScriptをローカル環境のwebpack-dev-serverで試験しようとすると、REST APIが別ポートになるのでローカル環境でだけCORSの設定が必要だったり、深いパスでリロードするとNot Foundになったりといったような面倒ごとが発生する。
これを解決するには、nginxなりでproxyを立てても良いが、webpack-dev-serverにもproxyの機能がついているので、以下のように設定すると簡単。
devServer: {
contentBase: 'dist',
host: '0.0.0.0',
port: 3000,
proxy: {
'/myapp/api': {
target: 'http://127.0.0.1:9292'
},
'/myapp': {
target: 'http://localhost:3000/examples/index.html',
pathRewrite: {'^.*' : ''}
}
}
}
examplesにローカル向けのindex.htmlを置いておいて、CopyWebpackPluginでコピーすると便利。
new CopyWebpackPlugin([
{ from: 'examples', to: 'examples' }
]),
0 件のコメント:
コメントを投稿