使用Grunt,Bower,Gulp,NPM和Visual Studio 2015 for ASP.NET 4.5项目

Rob*_*ner 90 asp.net asp.net-4.5 bower gulp visual-studio-2015

Visual Studio 2015内置支持Grunt,Bower,Gulp和NPM for ASP.NET 5项目等工具.

但是,当我使用Visual Studio 2015创建ASP.NET 4.5.2项目时,它不使用这些工具.我想使用bower而不是nuget来管理客户端软件包.

我可以在Visual Studio 2013中找到有关使用这些工具的信息(例如,请参阅问题).但我想Visual Studio 2015的程序是不同的,因为它内置了对这些工具的支持.

Rob*_*ner 128

虽然Liviu Costea的答案是正确的,但我仍然花了很长时间才弄清楚它是如何实际完成的.这是我从一个新的ASP.NET 4.5.2 MVC项目开始的分步指南.本指南包括使用bower的客户端软件包管理,但尚未涵盖bundling/grunt/gulp.

第1步(创建项目)

使用Visual Studio 2015创建新的ASP.NET 4.5.2项目(MVC模板).

第2步(从项目中删除捆绑/优化)

步骤2.1

卸载以下Nuget包:

  • 引导
  • Microsoft.jQuery.Unobstrusive.Validation
  • jQuery.Validation
  • jQuery的
  • Microsoft.AspNet.Web.Optimization
  • WebGrease
  • ANTLR
  • Modernizr的
  • 响应

步骤2.2

App_Start\BundleConfig.cs从项目中删除.

第2.3步

去掉

using System.Web.Optimization;
Run Code Online (Sandbox Code Playgroud)

BundleConfig.RegisterBundles(BundleTable.Bundles);
Run Code Online (Sandbox Code Playgroud)

Global.asax.cs

步骤2.4

去掉

<add namespace="System.Web.Optimization"/>
Run Code Online (Sandbox Code Playgroud)

Views\Web.config

步骤2.5

删除组件绑定System.Web.Optimization,并WebGreaseWeb.config

第3步(向项目添加凉亭)

步骤3.1

将新package.json文件添加到项目(NPM configuration file项目模板)

步骤3.2

添加bowerdevDependencies:

{
  "version": "1.0.0",
  "name": "ASP.NET",
  "private": true,
  "devDependencies": {
    "bower": "1.4.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

package.json保存时会自动安装凉亭包.

第4步(配置凉亭)

步骤4.1

将新bower.json文件添加到项目(Bower Configuration file项目模板)

步骤4.2

添加bootstrap,jquery-validation-unobtrusive,modernizrrespond到依赖关系:

{
  "name": "ASP.NET",
  "private": true,
  "dependencies": {
    "bootstrap": "*",
    "jquery-validation-unobtrusive": "*",
    "modernizr": "*",
    "respond": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

bower.json保存时会自动安装这些软件包及其依赖项.

第5步(修改Views\Shared\_Layout.cshtml)

步骤5.1

更换

@Styles.Render("~/Content/css")
Run Code Online (Sandbox Code Playgroud)

<link rel="stylesheet" href="~/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/Content/Site.css" />
Run Code Online (Sandbox Code Playgroud)

步骤5.2

更换

@Scripts.Render("~/bundles/modernizr")
Run Code Online (Sandbox Code Playgroud)

<script src="~/wwwroot/lib/modernizr/modernizr.js" ></script>
Run Code Online (Sandbox Code Playgroud)

步骤5.3

更换

@Scripts.Render("~/bundles/jquery")
Run Code Online (Sandbox Code Playgroud)

<script src="~/wwwroot/lib/jquery/dist/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

步骤5.4

更换

@Scripts.Render("~/bundles/bootstrap")
Run Code Online (Sandbox Code Playgroud)

<script src="~/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/wwwroot/lib/respond/dest/respond.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

第6步(修改其他来源)

在所有其他视图中替换

@Scripts.Render("~/bundles/jqueryval")
Run Code Online (Sandbox Code Playgroud)

<script src="~/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

有用的链接


捆绑和缩小

在下面的评论中,LavaHot建议使用Bundler和Minifier扩展作为我在步骤2中删除的默认捆绑包的替代.他还建议将这篇文章与Gulp捆绑在一起.

  • 非常感谢你.我是对的,错过了一步:如何将〜/ wwwroot映射到/../bower_components(或gulp/grunt配置如何将bower包移动到"〜/ wwwroot")你可以添加这一步并描述你将如何建议在VS2015环境中安排运行IIS Express的js/css代码? (6认同)