ASP.NET 4.5 Projesi için Visual Studio 2015 ile Grunt, Bower, Gulp, NPM kullanma


90

Visual Studio 2015, ASP.NET 5 projeleri için Grunt, Bower, Gulp ve NPM gibi araçlar için yerleşik destekle birlikte gelir.

Ancak Visual Studio 2015 kullanarak bir ASP.NET 4.5.2 projesi oluşturduğumda bu araçları kullanmıyor. İstemci tarafı paketleri yönetmek için nuget yerine bower kullanmak istiyorum.

Bu araçları Visual Studio 2013 ile kullanma hakkında bilgi bulabilirim ( örneğin bu soruya bakın ). Ancak, bu araçlar için yerleşik destek içerdiği için işlemin Visual Studio 2015 için farklı olduğunu tahmin ediyorum.

Yanıtlar:


128

İken Liviu Costea cevabı doğrudur, hala aslında nasıl yapıldığını anlamaya bana oldukça uzun bir zaman aldı. İşte yeni bir ASP.NET 4.5.2 MVC projesinden başlayarak adım adım kılavuzum. Bu kılavuz, bower kullanarak istemci tarafı paket yönetimini içerir ancak (henüz) bundling / grunt / yudum işlemlerini kapsamaz.

Adım 1 (Proje Oluşturun)

Visual Studio 2015 ile yeni bir ASP.NET 4.5.2 Projesi (MVC Şablonu) oluşturun.

2. Adım (Projeden Paketlemeyi / Optimizasyonu Kaldırma)

Adım 2.1

Aşağıdaki Nuget Paketlerini kaldırın:

  • önyükleme
  • Microsoft.jQuery.Unobstrusive.Validation
  • jQuery.Validation
  • jQuery
  • Microsoft.AspNet.Web.Optimization
  • WebGrease
  • Antlr
  • Modernizr
  • Cevap vermek

Adım 2.2

App_Start\BundleConfig.csProjeden kaldır .

Adım 2.3

Kaldırmak

using System.Web.Optimization;

ve

BundleConfig.RegisterBundles(BundleTable.Bundles);

itibaren Global.asax.cs

Adım 2.4

Kaldırmak

<add namespace="System.Web.Optimization"/>

itibaren Views\Web.config

Adım 2.5

Montaj Bağlar çıkarın System.Web.Optimizationve WebGreasegelenWeb.config

3. Adım (Projeye kamerayı ekleyin)

Adım 3.1

package.jsonProjeye yeni dosya ekle ( NPM configuration fileöğe şablonu)

Adım 3.2

Ekle boweriçin devDependencies:

{
  "version": "1.0.0",
  "name": "ASP.NET",
  "private": true,
  "devDependencies": {
    "bower": "1.4.1"
  }
}

Çardak paketi package.jsonkaydedildiğinde otomatik olarak kurulur .

Adım 4 (Kamerayı yapılandırın)

Adım 4.1

bower.jsonProjeye yeni dosya ekle ( Bower Configuration fileöğe şablonu)

Adım 4.2

Ekle bootstrap, jquery-validation-unobtrusive, modernizrve respondbağımlılıkları için:

{
  "name": "ASP.NET",
  "private": true,
  "dependencies": {
    "bootstrap": "*",
    "jquery-validation-unobtrusive": "*",
    "modernizr": "*",
    "respond": "*"
  }
}

Bu paketler ve bağımlılıkları otomatik olarak kurulur. bower.json kaydedildiğinde .

Adım 5 (Değiştir Views\Shared\_Layout.cshtml)

Adım 5.1

Değiştir

@Styles.Render("~/Content/css")

ile

<link rel="stylesheet" href="~/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/Content/Site.css" />

Adım 5.2

Değiştir

@Scripts.Render("~/bundles/modernizr")

ile

<script src="~/wwwroot/lib/modernizr/modernizr.js" ></script>

Adım 5.3

Değiştir

@Scripts.Render("~/bundles/jquery")

ile

<script src="~/wwwroot/lib/jquery/dist/jquery.min.js"></script>

Adım 5.4

Değiştir

@Scripts.Render("~/bundles/bootstrap")

ile

<script src="~/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/wwwroot/lib/respond/dest/respond.min.js"></script>

Adım 6 (Diğer kaynakları değiştirin)

Diğer tüm Görünümlerde

@Scripts.Render("~/bundles/jqueryval")

ile

<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>

kullanışlı bağlantılar


Paketleme ve Küçültme

Aşağıdaki yorumlarda LavaHot , 2. adımda kaldırdığım varsayılan paketleyicinin yerine Bundler & Minifier uzantısını önermektedir. Ayrıca Gulp ile birlikte paketlemeyle ilgili bu makaleyi de önermektedir .


6
Çok teşekkür ederim. Kaçırılan bir adım olduğu konusunda haklı mıyım: ~ / wwwroot ile /../bower_components arasında nasıl eşleme yapılır (veya gulp / grunt config, bower paketlerinin "~ / wwwroot" konumuna nasıl taşınacağı) Bu adımı ekleyip nasıl yapacağınızı açıklar mısınız VS2015 ortamında IIS Express ile çalışmak için js / css kodunu düzenlemenizi önerir misiniz?
Roman Pokrovskij

bower.jsonVisual Studio 2015 aracılığıyla bir dosya oluşturduğunuzda , otomatik olarak bir bowerrcdosya da oluşturacaktır , bu bower_componentsdawwwroot/lib
Sagebrush GIS

1
Yani paketlemenin benim için oldukça faydalı olduğu ortaya çıktı. Artık varsayılan paketleyiciyi kaldırdığınıza göre, değiştirmesi için Bundler & Minifier'ı önermek istiyorum . Task Runner Explorer'ı kullanır ve npm ve bower'a benzer bir yapılandırma dosyasına sahiptir. Aynı zamanda Web Essentials'ın bir parçasıdır, bu yüzden zaten yüklemiş olabilirsiniz.
LavaHot

1
İşte yudumla birlikte paketlemek için konuyla ilgili güzel bir makale.
LavaHot

1
Ayrıntılı bilgi için teşekkürler @SagebrushGIS! Ayrıca MVC projeme Bower paket yönetimini nasıl ekleyeceğimi araştırıyorum. Bower.json'u VS2015 aracılığıyla ekledim, ancak bahsettiğiniz bowerrc dosyasını göremiyorum. Eksik olabileceğim herhangi bir adım veya bu dosyayı nerede bulmalıyım? Şimdilik bir çözüm olarak şunu kullanıyorum: <link rel = "stylesheet" href = "~ / bower_components / bootstrap / dist / css / bootstrap.min.css" />
Guido Kersten

4

Aslında çok da farklı değil. Visual Studio'da tüm bunlar için daha iyi bir destek vardır, örneğin yeni öğeler eklediğinizde, bower veya npm yapılandırma dosyaları için şablonlarınız olur. Ayrıca gulp veya grunt yapılandırma dosyaları için şablonlarınız var.
Ancak aslında grunt / gulp görevlerinin çağrılması ve olayları oluşturmak için bağlanması, tıpkı VS 2013'te olduğu gibi Task Runner Explorer ile yapılır.


Sanırım, VS'de npm paketlerini araç kuruluyken nasıl kurduğunuzu hala anlamıyorum. Bir .npm yüklemesini her denediğimde, projemin düğüm veya başka bir şey için ayarlanmadığını söylüyor
Mastro

önce package.json'un kök klasörde oluşturulmuş olması gerekir. Bunu genellikle hedef projenin kökünde csproj dosyasının kardeşi olarak oluşturuyorum. daha sonra npm komutlarını kullanabilirsiniz
Roman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.