2017-04-19 1 views
9

おそらくばかげた質問です。私は、パッケージマネージャを使ってChart.jsをインストールしました。それはソリューションエクスプローラにあります。NugetからインストールしたJavaScriptパッケージはどうやって入れるのですか?

enter image description here

しかし、実際のJSファイルがあるか、どのように私はそれらを得るのですか?私がインストールしたとき、Gitが検出した変更はないので、何かが起こったのかどうかはわかりません。

+1

'Gitが検出した変更はありません' '.gitignore'によっておそらく無視されます。私はどのパッケージマネージャを使用しているのかよくわかりませんが、通常は依存関係があなたのコミットに含まれないように設定します。 –

+0

まったくばかげた質問ではありません。私は** jqwidgets **を追加しました。これはNuGetパッケージとしてのみ提供され、ベンダーはそれが問題であることに気づいていないようです。 – Auspex

答えて

6

Chart.js 2.5.0には、NuGetパッケージ内にChart.jsとChart.min.jsを含むContent \ Scriptsディレクトリが含まれています。使用しているプロジェクトの種類によっては、これらのファイルがプロジェクトに直接追加されたり追加されたりすることはありません。

packages.configファイルを含む.NET Frameworkプロジェクトを使用している場合、JavaScriptファイルはScriptsフォルダにプロジェクトに追加されます。

project.jsonファイルを使用している場合、またはプロジェクトがPackageReferencesを使用している場合は、NuGetパッケージ内のcontentFilesディレクトリにあるファイルのみがサポートされるため、何も追加されません。あなたのプロジェクトは、PackageReferencesを使用する.NETコアプロジェクトのように見えます。あなたがjavascriptファイルを入手する必要がある場合、Chart.js NuGetパッケージ自体は%UserProfile%\.nuget\packagesディレクトリにあります。

Tsengの答えでは、BowerやNode Package Managerを使用して、JavaScriptファイルを追加することをお勧めします。NuGetを使用する代わりに、ここでは最適なソリューションです。新しいプロジェクトファイル用にプロジェクトにソースファイルを追加することはできません。フォーマット。

+0

あなたはそうです、 '%UserProfile%\。nuget \ packages'にあります。だから私は自分のコードでそれをどのように参照するのですか? – user7127000

+1

おそらくファイルをコピーしてプロジェクトに直接追加し、NuGetを使用しないでください。 –

+0

私はこの回答に同意しません。 NuGetを非アセンブリに使用することは、最近避けられています。 JavaScript/CSSの場合は、代わりにjavascript/nodeパッケージマネージャを使用してください:nugetの代わりにnpmまたはbowerを使用して、手動で – Tseng

3

css/javascriptライブラリ用のNuGetの使用はお勧めしません。 ASP.NETコアの場合は、それぞれJavaスクリプト/ノードパッケージマネージャーbowerおよびnpmを使用する必要があります。

いずれかを使用できます。 BowerはブラウザライブラリとCSSに重点を置いていますが、NPMはサーバーサイドのもの(node.jsを使用)のためのものです。しかし、node.jsには、バウワーが持つパッケージのほとんど(すべてではないにしても)が含まれているので、好みの問題です。

MVCプロジェクトを選択し、プロジェクトルートに新しいファイルを追加する必要があります。テンプレートマネージャ(Add->New File...)で、「Bower Configuration File」または「npm Configuration file」を検索します。その後

あなたが保存した後、すなわち

package.json(NPM)

{ 
    "dependencies:" { 
     "chart.js": "2.5.0" 
    } 
} 

、ファイルを編集して、依存関係を追加し、ファイルはこれだけで。node_modules`」という名前のディレクトリにダウンロードされます必要なファイルをアプリケーションの実行時にアクセスできるwwwrootフォルダにコピーする必要があります。

これはファイルをまとめてバンドルする必要があります既定のASP.NETコアプロジェクトテンプレートにするe)、GulpやGruntなどのタスクランナーを使用してビルド/パブリッシングのタスクを実行します。 ASP.NET Core Docs on Gulp examplesを参照してください。

+0

"css/javascriptライブラリ用のNuGetの使用は避けてください。" - 万が一、この声明の出典がありますか? もっと詳しく理解しようとしています。私は、クライアントとサーバーの部分を一緒に配布することが理にかなって、bower/npmがクライアント側の依存関係を管理する利点を上回るかもしれないシナリオを考えることができます。 https://docs.microsoft.com/en-us/aspnet/core/client-sideでは、Bowerはいくつかの場所でnpmまたはNuGetより「推奨」されています。しかし、私はそれぞれのトレードオフについての議論を見つけることができません – Max

+1

@Max:ソースは手元にありませんが、過去には、JavaScript/cssファイルなどが 'Install-パッケージ '。 ASP.NET Coreワークフローでは、これはもはや発生しません(少なくとも1.0/1.1リリースの間はそうでした)。また、NuGetはパワーシェルスクリプトを内部で実行しません。以前はいくつかのnugetパッケージで発生しました。一つの理由は、LinuxとMacOS(まだ)ではpower shellが利用できないということかもしれません。すべてのパッケージには、これらのファイルを展開するための独自のフォルダ構造があります。これらのファイルは、しばしばコミットされることになります。 – Tseng

+1

node_modules/bower_modulesはデフォルトでは.githubで除外されています。最近ではテンプレートによって作成されていますが、一般的にフローは異なります(ファイルを 'wwwroot/lib'にコピーし、bundler(非角形テンプレート)最後には、css/jsライブラリの今日の使用がnpm/bowerに移行したことを考慮して、ナゲットパッケージはしばしば更新されます。 ASP.NET **コア**開発。 – Tseng

関連する問題