Ich benutze Gulp als mein Build-System.Wie kann ich eine Sass-Variable mit einer Umgebungsvariablen setzen?
Ich brauche Links zu identifizieren zu externen Webseiten Dritter mit dem SCSS folgenden Regel zeigen:
// Links to external websites
a[href*='//']:not([href*='example.com']) {
&::after {
content: ' \e895';
font-family: 'Material Icons';
}
}
ODER
$baseURL: 'localhost:3000'; // Set this variable based on environment
a[href*='//']:not([href*='#{$baseurl}']) {
...
}
Wenn ich renne einen Entwicklungsserver der Adresse I Dateien sind diene aus ist localhost:3000
, nicht example.com
. Das Ergebnis ist, dass jeder einzelne Link auf der Website (auf dem Dev-Server) ein kleines Symbol hat, das anzeigt, dass der Link auf eine externe Website geht, was wirklich störend ist.
Wie kann eine scss-Variable basierend auf einer Umgebungseinstellung am besten eingerichtet werden?
Edit:
Diese Lösung funktioniert, aber es stellt eine temporäre Datei, die ich nicht bin wild. Ich habe meine _variables.scss
in den Scss-Root verschoben, ich verarbeite diese Datei und gebe sie in das Unterverzeichnis base
aus, wo sie zur Kompilierung des Scss verwendet wird. Ich würde dann scss/base/_variables.scss
zu meinem .gitignore
hinzufügen, um die Versionskontrolle zu vermeiden.
_variables.scss
$baseURL: '/* @echo PATH */';
Gulpfile.js
// Set baseurl as Sass variable -- used to identify external links
gulp.task('sass-vars', function() {
var baseURL = (config.production) ? 'example.com' : 'localhost:3000';
return gulp.src('./scss/_variables.scss')
.pipe($.preprocess({context: {PATH: baseURL}}))
.pipe(gulp.dest('./scss/base'));
});
Werfen Sie einen Blick auf: https://github.com/dlmanning/gulp-sass/issues/280 – sobolevn
Mögliche Duplikate: http://stackoverflow.com/questions/15153613/provide-sass-variables-definition-on -command-line, http://stackoverflow.com/questions/14506578/use-variable-defined-in-config-rb-in-scss-files – cimmanon
Beide Lösungen verwenden Ruby/Kompass, die eine Konfigurationsdatei enthält, die es ermöglicht Sie legen SASS-Umgebungsvariablen fest. – Roy