2015-07-22 25 views
5

Nel nuovo Visual Studio 2015 e nel plug-in Web Essentials, hanno rimosso la funzione per compilare determinati file come Less files. Invece suggeriscono di usare i compiti di Gulp.Pubblica file di destinazione Gulp con Visual Studio 2015

Mentre applaudo questa decisione e capisco come configurare Gulp per compilare i file Less, ma poiché questa non è un'applicazione ASP.NET 5, i nuovi file non vengono automaticamente aggiunti al progetto e come tali non vengono copiati quando si utilizza la funzione Pubblica di VS2015.

Come vedo, l'unico modo per copiare questi file è aggiungerli manualmente al progetto. Questo sembra un ma intuitivo, se crei un'attività per compilare **/*. Meno devi cercare nell'intero progetto per trovare i file css generati e aggiungerli tutti manualmente.

Sto solo facendo qualcosa di sbagliato o è solo così che funziona ora?

risposta

5

Non aggiungere i file manualmente, è abbastanza facile aggiungerli con una destinazione nel file di progetto. Questo è il modo in cui lo facciamo e usiamo anche il pacchetto gulp-rev che modifica dinamicamente il nostro nome file (in modo che non vengano memorizzati nella cache da un browser). Ecco come il nostro obiettivo BeforeBuild dal nostro file Csproj assomiglia:

<Target Name="BeforeBuild"> 
    <Exec Command="BeforeBuild.bat" WorkingDirectory="$(ProjectDir)" /> 
    <ItemGroup> 
     <Content Include="Scripts\Output\**\*.js" /> 
     <Content Include="Content\**\output\**\*.css" /> 
    </ItemGroup> 
</Target> 

E nel nostro caso in cui pubblichiamo tutti i file generati da js Scripts \ Output \ all_folders \ otterrà pubblicato troppo, anche se non sono in il csproj (e lo stesso per i file css generati)

+0

Cosa fa il file BuildBefore.bat? Esegui le attività di Gulp? Immagino che dovremo cambiare il nostro modo di lavorare, ma eravamo abituati ad aggiungere un nuovo file .less (ovunque nel progetto) e funziona, usando quello sopra abbiamo bisogno di farlo entrare nelle nostre teste che tutti i file meno saranno compilati in una cartella di output specifica. Probabilmente abbiamo solo bisogno di più esperienza con Gulp :) Grazie per l'aiuto – Robba

+0

Sì, nel BuildBefore.bat abbiamo i comandi per il ripristino dei pacchetti npm e bower e anche per eseguire le attività di gulp. E sì, cambia il modo in cui sei abituato perché in realtà il risultato della compilazione dovrebbe essere iniettato nella tua webform/view con un'attività come gulp-inject. –

+0

Quindi sono corretto quindi assumendo che non si utilizzino i binding di Task Runner Explorer per legare le attività di Gulp per creare eventi? Dal momento che lo stai già utilizzando il file BeforeBuild.bat. – Robba

1

Per coloro che preferivano il metodo "Web Essentials" per compilare i file Less, Sass e CoffeeScript, Mads Kristensen ha pubblicato una nuova estensione VS 2015 denominata Web Compiler. Provalo. Vedi anche la sua estensione Bundler & Minifier per funzionalità aggiuntive rimosse da Web Essentials.

Problemi correlati