さんごーの節約&ダイエット日記。

楽しく節約とダイエット!をしながら日々の学んだ事をまとめていく個人ブログです。

VisualStudio2017で「基本的なAzure Node.js Express 4 アプリケーション」の公開に失敗する件の原因と対策らしきモノ

VisualStudio2017でNode.jsのお勉強をしようと思い、いろいろいじっています。

成果物の公開サーバーは手始めとしては無料の環境が良いと思い、Microsoft AzureのWeb Appを使っています。

んで、VisualStudio2017でプロジェクトを作るときに「基本的なAzure Node.js Express 4 アプリケーション」を選択し、AzureのWeb Appに直接公開するWebデプロイを使って公開しようとすると毎回失敗して、原因も分からず困っていたのですが、ようやく原因が分かったので記録を残しておきます。

 

 

再現方法

Microsoft AzureでWeb Appの環境を作っておきます。

環境を作る手順は以下の記事に書いています。

完全無料でMicrosft AzureのWeb AppにVisualstuioを使ってデプロイする

 

今回はプロジェクトを作成する時に「基本的なAzure Node.js Express 4 アプリケーション」を選びます。

Expressを使ってみたければこのプロジェクトを選ぶのが手っ取り早いと思うのが普通かと思います。

f:id:thirtyfive:20170613155952p:plain

 

あとは作っておいたWeb Appの環境に公開するだけです。

f:id:thirtyfive:20170613160425p:plain

続きは以下の記事にあるので省略します。

完全無料でMicrosft AzureのWeb AppにVisualstuioを使ってデプロイする

 

で、いざ公開しようと思うと…

f:id:thirtyfive:20170613160829p:plain

プレビューにはファイルのリストが何にも出てきません。

 

試しに「発行」を実行してみても…

f:id:thirtyfive:20170613161043p:plain

原因など一切分からないまま失敗します。

原因は何か!?

こんなワケの分からない状態で失敗したらこの時点でVisualStudio使うのやめたろかって思ってしまってもおかしくはないってモンです。

 

原因らしきモノ

空のプロジェクトで公開した時と何が違うのか差分を調べていたら、一つ問題の切り分けができました。

どうやらプロジェクトに「pug 2.0.0-rc2」というモジュールが含まれていると公開に失敗するようです。AzureのWeb Appがこのモジュールのこのバージョンに対応してないという事なのか、よくわかりませんが、このモジュールを取り除くと問題は解決します。

f:id:thirtyfive:20170613162010p:plain

 

 

対策らしきモノ

pugはnode.jsのテンプレートエンジンですが、このままだと使えないという事になります。

単純な話、別のテンプレートエンジンを使うようにすれば解決します。

pugの別のバージョンを指定すれば上手くいくのかなと思いましたが、少し試した感じだとダメそうでした。

 

ectというテンプレートエンジンがあるそうなので試したところ、うまく公開できました。

f:id:thirtyfive:20170613164756p:plain

 

Web Appでは使えないnpmモジュールがあるという事で、これがバグなのか仕様なのかよくわかりませんが、とにかくそういう事っぽいです。

 

そんなんでええんかいという感じもしますが、私のようにとりあえずいろいろ動かして遊びたい人であればさほど問題ではないでしょう。

業務で使うとなるといろいろと厳しいような感じもしなくは無いですが、業務でWeb App使うこと自体そんなに無いような気もします。普通にWebサーバ立てればいいですからね…

 

釈然としない気持ちが残りつつ、今回は以上です。

間違っている点や、気が付いた事があればコメント欄等で指摘していただくと嬉しいです。

 

でわでわ以上です。