如何包含我从Nuget安装的JavaScript包?

时间:2017-04-19 03:16:10

标签: javascript visual-studio nuget

可能是一个愚蠢的问题。我使用包管理器安装了Chart.js。它位于解决方案资源管理器中。

enter image description here

但是实际的JS文件在哪里或者我如何获取它们?当我安装它时,Git没有检测到任何变化,所以我不确定是否发生了任何变化。

2 个答案:

答案 0 :(得分:10)

Chart.js 2.5.0在其NuGet包中包含一个Content \ Scripts目录,其中包含Chart.js和Chart.min.js。根据您使用的项目类型,这些文件可能会也可能不会直接添加到您的项目中。

如果您使用的是包含packages.config文件的.NET Framework项目,那么JavaScript文件将被添加到项目的Scripts文件夹中。

如果您正在使用project.json文件,或者您的项目使用PackageReferences,则不会添加任何内容,因为此类项目仅支持NuGet包内的contentFiles目录中的文件。您的项目看起来像将使用PackageReferences的.NET Core项目。如果你需要获取javascript文件,Chart.js NuGet包本身将在%UserProfile%\.nuget\packages目录中。

Tseng的回答建议切换到使用Bower或Node Package Manager添加JavaScript文件似乎是最好的解决方案,而不是使用NuGet,它没有很好的支持将源文件添加到项目中较新的项目文件格式。

答案 1 :(得分:4)

不建议将NuGet用于css / javascript库。对于ASP.NET Core,您应该分别使用java脚本/节点包管理器, bower npm

您可以使用其中任何一个。 Bower更专注于浏览器库和css,而NPM更多用于服务器端的东西(使用node.js)。但是node.js还包含大多数(如果不是全部)bower包的包,所以这是偏好的问题。# 为此,您需要选择MVC项目并将新文件添加到项目根目录。在模板管理器(Add->New File...)中,搜索“Bower配置文件”或“npm配置文件”。

然后编辑文件并添加您的依赖项,即

package.json(npm)

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

保存后,文件将被下载到名为“node_modules”的目录中。仅此一项是不够的,因为需要将所需文件复制到wwwroot文件夹,在应用程序运行时可以访问它们。

为此,您需要使用bundler将文件捆绑在一起(应该在默认的ASP.NET Core项目模板中)或使用Gulp或Grunt等任务运行程序来运行构建/发布任务,这样做为了你。见ASP.NET Core Docs on Gulp examples

更新

Bower现在已经deprecated超过一年了。