Quindi, ecco come farlo (compilare su di costruzione e non elegante compilazione su Save):
Fase 1
Aprite il vostro file di package.json
(è nella root del vostro progetto) e aggiungere queste righe:
"grunt-contrib-less": "^1.0.0",
"less": "^2.1.2"
Ovviamente è possibile modificare i numeri di versione (si otterrà utili intelliSense), queste sono solo le versioni attuali.
Fase 2
pulsante destro del mouse sulla cartella NPM
(sotto Dependencies
) e fare clic Restore Packages
. Questo installerà less
e grunt-contrib-less
.
Fase 3
Una volta che questi pacchetti vengono ripristinati, vai al tuo gruntfile.js
del file (ancora una volta, nella radice del progetto). Qui, è necessario aggiungere la seguente sezione per grunt.initConfig
less: {
development: {
options: {
paths: ["importfolder"]
},
files: {
"wwwroot/destinationfolder/destinationfilename.css": "sourcefolder/sourcefile.less"
}
}
}
Avrete anche bisogno di aggiungere questa linea verso la fine del gruntfile.js
:
grunt.loadNpmTasks("grunt-contrib-less");
Fase 4
Quindi vai su View->Other Windows->Task Runner Explorer
nel menu premi l'icona/pulsante di aggiornamento, quindi fai clic con il pulsante destro del mouse su less
sotto Tasks
e vai su Bindings
e fai clic su After Build
.
Urrà, ora meno file verranno compilati e noi (I) abbiamo imparato a conoscere il grunt, che sembra davvero potente.
Passo 5: Compilare su Save
non ho ancora ottenuto questo lavoro per la mia soddisfazione, ma ecco quello che ho finora:
Come sopra, aggiungere un altro pacchetto NPM grunt-contrib-watch
(aggiungi al pacchetto.json, quindi ripristinare i pacchetti).
Quindi aggiungere una sezione orologio in gruntfile.js, come questo (ovviamente questo può funzionare per altri tipi di file come bene):
watch: {
less: {
files: ["sourcefolder/*.less"],
tasks: ["less"],
options: {
livereload: true
}
}
}
Così ora avrete qualcosa di simile nel tuo gruntfile. 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");
};
Uno può poi semplicemente impostare questo compito per essere eseguito su progetto Open (tasto destro del mouse sul watch
sotto Tasks
nel Task Runner Explorer
(è sotto View->Other Windows
nel menu in alto) e il gioco è fatto mi aspetterei dovresti farlo chiudi e riapri il progetto/soluzione per ottenere questo risultato, altrimenti puoi eseguire manualmente l'attività.
Inoltre, ci sto lavorando da solo, quindi se lo faccio con successo, aggiornerò questo con una risposta passo-passo. – Maverick
Questa è un'ottima guida su come usare Grunt e Bower in VS2015 http://www.asp.net/vnext/overview/aspnet-vnext/grunt-and-bower-in-visual-studio-2015 –