2013-02-19 10 views
5

Nel mio progetto web ho diviso il mio CSS in file LESS separati per ragioni di manutenzione. Ho un file chiamato config.less che agisce come un file master che importa gli altri file in meno, usando le direttive @import.MENO @import & Web Essentials 2012

Il problema con questa configurazione sembra essere che ho un sacco di "variabile non dichiarata" & "mixin sommerso" mentre si modifica i file di meno, ad esempio, mentre l'aggiunta di una variabile di proprietà chiamata @textColor in base.less, che è dichiarato in un altro file meno chiamato variables.less. Esiste un modo per rendere gli elementi essenziali del Web consapevoli delle variabili e dei mixin definiti in meno file esterni?

Un'altra cosa che sembra essere inciampare Essentials web è quando sto usando la funzione di media query nidificate di LESS:

.some-selector { 
    background: #000; 
    @media only screen and (max-width: 800px) { 
     background: #fff; 
    } 
} 

La dichiarazione @media annidata ottiene una sottolineatura rossa, e al passaggio del mouse si dice "Unexpected '@' block nella regola di stile". Passando il mouse sulla proprietà nidificata dello sfondo viene visualizzato "Convalida: 'color' non è un tag HTML valido

risposta

2

Non riesco a dare una risposta in merito al problema @media con Web Essentials, ma posso dare consigli sul problema delle variabili e dei mixin.

Fondamentalmente, modificare il file config.less per avere la variables.less e qualsiasi altro file mixin essere @import-once, quindi anche aggiungere @import-once 'variables.less in ogni file che utilizza variabili da esso (fare lo stesso per tutti i file mixin utilizzati).

Quello che fa è importare il file se ci stai lavorando (come il tuo base.less), ma quando tutti i file sono compilati da config.less, importa una sola volta lo variables.less e non ancora per ogni file che fa riferimento anche allo variables.less.

+1

Per qualche motivo import-once non funziona per me. Ho un file style.less principale che contiene solo importazioni. Da lì importare-una volta un file mixin.less che dichiara una classe .clearfix e la classe è inclusa come dovrebbe essere ... Buona. Ora in un altro file, inoltre, importare, una volta il file mixin.less, per ottenere intellisense, e quindi importare, una volta che il file è stato impostato sullo style.less principale. Penserei che dovrebbe includere solo la classe .clearfix una volta, ma sfortunatamente lo include due volte? qualche idea? – MattyP

+1

Grazie a @ScottS! Questo era esattamente quello che stavo cercando. Dovrebbe essersi preso la briga di leggere la documentazione di LESS in modo più approfondito :) Secondo i documenti, '@ import-once 'sarà il comportamento predefinito di' @ import' a partire da v. 1.4.0. – Unless

+0

@MattyP: che style.less suona come l'equivalente del mio file 'config.less'. In tal caso, sembra che abbiamo impostazioni abbastanza simili. Quindi il 'style.less file' compilato contiene la classe' .clearfix' due volte? – Unless

Problemi correlati