40

Ok, so habe ich ein neues ASP.Net 5/MVC 6 Projekt in Visual Studio 2015 Vorschau erstellt. In Übereinstimmung mit unserer aktuellen Methode, Dinge zu tun, möchte ich .less Dateien verwenden. Das Erstellen der Dateien ist unkompliziert, aber Web Essentials kompiliert sie nicht mehr.Wie kompiliert .less Dateien beim Speichern in Visual Studio 2015 (Vorschau)

Also meine Frage ist das: Was genau muss ich tun, um meine .css Dateien zu generieren, wenn ich die .less Dateien speichern?

Basierend auf meinen Abenteuern bekommen Typescript gut funktionieren, muss ich Grunt verwenden, um diese Aufgabe zu erfüllen, aber ich bin brandneu zu Grunt und so bin ich mir nicht sicher, wie man es tun würde?

Bitte helfen!

+0

Auch arbeite ich mich durch diese, so dass, wenn ich so erfolgreich tun, ich dies mit einem Schritt-für-Schritt-Antwort aktualisieren werde. – Maverick

+0

Dies ist eine hervorragende Anleitung, wie man Grunt und Bower in VS2015 verwenden http://www.asp.net/vnext/overview/aspnet-vnext/grunt-and-bower-in-visual-studio-2015 –

Antwort

40

Also hier ist, wie es geht (kompilieren auf zu bauen und nicht-elegante Kompilierung auf Speichern):

Schritt 1

Öffnen Sie Ihre package.json Datei (es ist in der Wurzel des Projekts) und fügen Sie die folgenden Zeilen:

"grunt-contrib-less": "^1.0.0", 
"less": "^2.1.2" 

Natürlich können Sie die Versionsnummern ändern (Sie werden hilfreich intellisense zu bekommen), das sind nur die aktuellen Versionen sind.

Schritt 2

der rechten Maustaste auf den Ordner NPM (unter Dependencies) und Restore Packages klicken. Dies installiert less und grunt-contrib-less.

Schritt 3

Nach der Wiederherstellung werden diese Pakete gehen (in der Wurzel des Projekts wieder) auf Ihrer gruntfile.js Datei. Hier müssen Sie den folgenden Abschnitt in grunt.initConfig

less: { 
    development: { 
     options: { 
      paths: ["importfolder"] 
     }, 
     files: { 
      "wwwroot/destinationfolder/destinationfilename.css": "sourcefolder/sourcefile.less" 
     } 
    } 
} 

Sie werden auch diese Zeile am Ende gruntfile.js hinzufügen müssen, um hinzuzufügen:

grunt.loadNpmTasks("grunt-contrib-less"); 

Schritt 4

Dann gehen Sie einfach zu View->Other Windows->Task Runner Explorer in dem Menü drücken Sie das Aktualisieren Symbol/Schaltfläche, dann mit der rechten Maustaste auf less unter Tasks und gehen Sie zu Bindings und ankreuzen After Build.

Hurra, jetzt werden weniger Dateien kompiliert und wir (ich) haben etwas über Grunt gelernt, das wirklich mächtig scheint.

Schritt 5: Kompilieren auf Speichern

Ich habe noch nicht mit diesen Arbeiten zu meiner Zufriedenheit bekommen, aber hier ist das, was ich bisher habe:

Wie oben, fügen Sie eine weitere NPM Paket grunt-contrib-watch (Zum Paket hinzufügen.json, dann Pakete wiederherstellen).

Dann eine Uhr Abschnitt in gruntfile.js hinzufügen, wie diese (natürlich kann dies auch für andere Arten von Dateien arbeiten):

watch: { 
    less: { 
     files: ["sourcefolder/*.less"], 
     tasks: ["less"], 
     options: { 
      livereload: true 
     } 
    } 
} 

So werden Sie jetzt so etwas wie dies in Ihrem gruntfile haben. js.

/// <binding AfterBuild='typescript' /> 
// This file in the main entry point for defining grunt tasks and using grunt plugins. 
// Click here to learn more. http://go.microsoft.com/fwlink/?LinkID=513275&clcid=0x409 

module.exports = function (grunt) { 
    grunt.initConfig({ 
     bower: { 
      install: { 
       options: { 
        targetDir: "wwwroot/lib", 
        layout: "byComponent", 
        cleanTargetDir: false 
       } 
      } 
     }, 
     watch: { 
      less: { 
       files: ["less/*.less"], 
       tasks: ["less"], 
       options: { 
        livereload: true 
       } 
      } 
     }, 
     less: { 
      development: { 
       options: { 
        paths: ["less"] 
       }, 
       files: { 
        "wwwroot/css/style.css": "less/style.less" 
       } 
      } 
     } 
    }); 

    // This command registers the default task which will install bower packages into wwwroot/lib 
    grunt.registerTask("default", ["bower:install"]); 

    // The following line loads the grunt plugins. 
    // This line needs to be at the end of this this file. 
    grunt.loadNpmTasks("grunt-bower-task"); 
    grunt.loadNpmTasks("grunt-contrib-less"); 
    grunt.loadNpmTasks("grunt-contrib-watch"); 
}; 

man kann dann einfach diese Aufgabe gesetzt läuft auf Project Open (rechts~~POS=TRUNC auf watch unter Tasks im Task Runner Explorer (es ist unter View->Other Windows im oberen Menü) und fertig ich würde erwarten, du müsstest Schließen Sie das Projekt/die Lösung, und öffnen Sie es erneut, damit das Programm gestartet wird. Andernfalls können Sie die Aufgabe manuell ausführen.

+0

Ich habe keine package.json oder alles, was als "unter Abhängigkeiten" beschrieben werden kann. Gibt es einige erste Schritte, die in diesem Beitrag verpasst wurden? – braks

+0

@Braks - Die Datei package.json wird erstellt, sobald Sie eine ASP.Net 5/MVC 6-App erstellen (wie in der Frage erwähnt). Sie können jedoch nur einen selbst hinzufügen (der Vorlagenname im 'Add-New Item ...' Dialog ist 'NPM Konfigurationsdatei' unter' Web/Allgemein'. – Maverick

+0

Ich habe seitdem herausgefunden, dass dies nur bei neuen funktioniert VS2015 Projekte http://stackoverflow.com/questions/32716983/gulp-bower-support-in-vs2015-for-an-upgraded-project – braks

8

(Hinweis: Es gibt jetzt eine neue Frage gestellt here sass direkt über habe ich versucht, die Frage und Tags in dieser Frage zu ändern sass zu schließen, aber jemand hat es nicht zulassen..)

Ich mag um die Antwort zu derselben Frage hinzuzufügen für sass (.scss). Die Antwort ist so verwandt, ich denke, dass diese am besten als zwei Antworten in diesem gleichen Beitrag kombiniert werden können (, wenn Sie nicht einverstanden sind, lassen Sie es mich wissen, sonst könnten wir "oder sass" in der Beitragstitel?). Maverick Antwort für einige nähere Einzelheiten Als solche sehen, hier ist der Punkt gebracht für Sass:

(Pre-Schritt für leere Projekte) Wenn Sie mit einem leeren Projekt gestartet, fügen ersten Grunt und Bower:

Rechts-Klick-Lösung -> Add -> 'Grunt und Bower auf Project' (dann für eine Minute warten, bis es alle installieren)

package.json:

"devDependencies": { 
    "grunt": "^0.4.5", 
    "grunt-bower-task": "^0.4.0", 
    "grunt-contrib-watch": "^0.6.1", 
    "grunt-contrib-sass": "^0.9.2" 
} 

(FYI: grunt-contrib-sass link)

Dann:

Abhängigkeiten -> Rechtsklick NPM -> Wiederherstellen Pakete.

gruntfile.js

1) hinzufügen oder stellen Sie sicher, diese drei Linien am unteren Rand registriert sind (wie NPM Aufgaben):

grunt.loadNpmTasks("grunt-bower-task"); 
grunt.loadNpmTasks("grunt-contrib-watch"); 
grunt.loadNpmTasks("grunt-contrib-sass"); 

2) wieder in gruntfile. js, fügen Sie init-Konfigurationen hinzu, etwa wie folgt.

{Vorbehalt: Ich bin kein Experte für solche Konfigurationen. Ich habe die Sass-Konfiguration vor einiger Zeit in einem exzellenten Blogpost gefunden, den ich zu diesem Zeitpunkt nicht lokalisieren kann, um Kredit zu geben. Der Schlüssel war, ich wollte alle Dateien im Projekt innerhalb eines bestimmten Ordners (plus Nachkommen) finden.Folgendes tut das (notice "someSourceFolder/**/*.scss" und see important related note here). }

Jetzt folgen Sie den Anweisungen für Task Runner Explorer wie in der anderen Antwort angegeben. Stellen Sie sicher, dass Sie das Projekt schließen und erneut öffnen. Es sieht so aus, als ob Sie jedes Mal, wenn das Projekt gestartet wird, um die Uhr anzuschauen (Doppelklick), auf "Beobachten" (unter "Aufgaben") klicken müssen, aber dann bei nachfolgenden Speichern.

39

Mit VS 2015 Web Essential ist split into multiple extensions Sie können die Web Compiler-Erweiterung von here herunterladen und es enthält auch Details zur Verwendung.

Es ist sicher nicht elegant wie früher, aber wenn Sie bereits bestehendes Projekt verwenden und einen Compiler für LESS verwenden möchten, dann kann dies die grundlegende Arbeit tun.

+6

Dies ist eine Größenordnung weniger kompliziert als die gruntfile/Paket .json Lösung und funktioniert super! – nuander

+0

Dies ist seit RTM von VS2015 verfügbar (war aber nicht verfügbar, als diese Frage gestellt wurde) - aber es wurde erst vor kurzem damit begonnen, '.less' Dateien korrekt zu kompilieren (es war * mit einem unvollständigen und leicht beschädigten Compiler zuvor). Nun, da ich es verstehe, bevorzuge ich Grunt oder Gulp, aber Web Compiler ist auch eine solide Option :). – Maverick

+0

Die Antwort "als Lösung" ist weitaus komplizierter. Laden Sie einfach das Erweiterungsprogramm herunter, starten Sie Visual Studio neu und Sie sind fertig. Dies sollte die markierte Antwort sein. – Porschiey

Verwandte Themen