none
VisualStudio2015ProでNuGetを使用して取得したKnockout.jsライブラリは wwwrootのLib以下に自動で配置されない RRS feed

  • 質問

  • VisualStudio2015ProでNuGetを使用して取得したKnockout.jsライブラリは wwwrootのLib以下に自動で配置されない状況です。

    NuGetで取得したライブラリ本体は、

    C:\Users\[ユーザ]\.nuget\packages\knockoutjs\3.3.0\Content\Scripts

    以下に格納されていました。

    プロジェクト側の

    C:\Users\[ユーザ]\Documents\Visual Studio 2015\Projects\[プロジェクト]\artifacts\bin\[プロジェクト]\Release\PublishOutput\approot\packages\knockoutjs

    以下には、

    knockoutjs.nuspec

    のようなファイルがあるのみ。

    プログラム中でScriptセクションで指定する場合、Lib下にファイルが無いのでどのようにScript指定すれば良いのかわからないでいます。ご教授いただければ幸いです。

    2015年10月16日 7:43

回答

  • Visual Studio 2015 で wwwroot についてお話しされているということは、おそらくテンプレートとしてASP.NET 5 Previewを選択されていると思います。

    以下はその前提でのお話になります。

    ※この前提が違う場合は読み飛ばしてもらいつつ、ご利用されているプロジェクトテンプレート(またはテンプレートを展開された際に選択したものや手順など)を書き込んでいただくと良いのではと思います。

    まず初めに、ASP.NET 5 Previewはその名の通り、現在プレビュー版ですので、今後挙動が変わる可能性があります。また随時バージョンアップしているので、インストールされているバージョンで若干挙動や構成が異なるかもしれません(ちょうど本日、最新のプレビューが公開されたばかりです)。


    ASP.NET 5 のプロジェクトでは、JavaScriptやCSSに関わるようなライブラリは、NuGetでは無く、bowerを利用して管理する方向で現在開発がすすめられています。

    bowerを利用してknockoutを取り込む場合、bower.jsonに対して例えば以下のような記述を加えることになります。

    "knockoutjs": "3.3.0"

    こうすることで、しばらくすると依存関係が解決され、wwwroot\lib配下にknockoutフォルダが作成され、ファイルが取り込まれることになると思います。



    きよくらならみ

    2015年10月16日 9:40
  • 記載のアドレスにアクセスできない旨のエラーですね……。

    もしかして、外部へのアクセスにproxyを経由する必要があるような環境でしょうか?
    であれば、proxy関連の設定を行う必要がありそうです。.bowerrc ファイルにて設定を行えます。

    エラーメッセージから検索してみたところ、以下がヒットしました。ほかにも「bower  proxy」などで検索されると良いのではないかと思います。
    参考: Bower calls blocked by corporate proxy


    またproxy環境下ですとgit側でもproxyの設定が必要になるかもしれませんので、参考まで。
    参考: プロキシ環境下でgitを使う


    きよくらならみ

    2015年10月19日 9:12

すべての返信

  • Visual Studio 2015 で wwwroot についてお話しされているということは、おそらくテンプレートとしてASP.NET 5 Previewを選択されていると思います。

    以下はその前提でのお話になります。

    ※この前提が違う場合は読み飛ばしてもらいつつ、ご利用されているプロジェクトテンプレート(またはテンプレートを展開された際に選択したものや手順など)を書き込んでいただくと良いのではと思います。

    まず初めに、ASP.NET 5 Previewはその名の通り、現在プレビュー版ですので、今後挙動が変わる可能性があります。また随時バージョンアップしているので、インストールされているバージョンで若干挙動や構成が異なるかもしれません(ちょうど本日、最新のプレビューが公開されたばかりです)。


    ASP.NET 5 のプロジェクトでは、JavaScriptやCSSに関わるようなライブラリは、NuGetでは無く、bowerを利用して管理する方向で現在開発がすすめられています。

    bowerを利用してknockoutを取り込む場合、bower.jsonに対して例えば以下のような記述を加えることになります。

    "knockoutjs": "3.3.0"

    こうすることで、しばらくすると依存関係が解決され、wwwroot\lib配下にknockoutフォルダが作成され、ファイルが取り込まれることになると思います。



    きよくらならみ

    2015年10月16日 9:40
  • 不完全な質問で申し訳ありませんでした。

    おっしゃる通り、ASP.NET 5 PreviewのMVC6を試行している状況です。

    NuGet, bower, NPMなどのパッケージ管理システムが導入され、どの部分をどのように利用したらよいのか悩んでいたところです。

    クライアントサイドのパッケージ管理についてはbowerを利用していく方向なのですね。

    本日はVS2015環境を使用できるところにいないので月曜日での確認になりますが、取り急ぎお礼まで。

    ありがとうございました。

    2015年10月17日 2:29
  • ご教授頂いた内容でBower.jsonファイルを書き換えましたが、

    bower    retry Request to https://bower.herokuapp.com/packages/knockoutjs failed with ETIMEDOUT, retrying in 1.8s

    のようなエラーが継続されて出力される結果となっています。

    ご教授頂けたら幸いです。

    2015年10月19日 2:47
  • 記載のアドレスにアクセスできない旨のエラーですね……。

    もしかして、外部へのアクセスにproxyを経由する必要があるような環境でしょうか?
    であれば、proxy関連の設定を行う必要がありそうです。.bowerrc ファイルにて設定を行えます。

    エラーメッセージから検索してみたところ、以下がヒットしました。ほかにも「bower  proxy」などで検索されると良いのではないかと思います。
    参考: Bower calls blocked by corporate proxy


    またproxy環境下ですとgit側でもproxyの設定が必要になるかもしれませんので、参考まで。
    参考: プロキシ環境下でgitを使う


    きよくらならみ

    2015年10月19日 9:12
  • たびたび申し訳ありません。助かりました。

    自宅PCの直接インターネット環境では、ご教授いただいた方法で成功しました。

    会社PCではプロキシ経由の環境だったので、おそらくプロキシ設定がされていないことによる問題だと推測されます。

    NuGetは問題なく動作していましたので、Bowerには別途プロキシ設定が必要だとの認識に至りませんでした。

    2015年10月19日 11:17