random()
ubuntu サーバーでコンパイルするときに、sassの機能に問題があります。
現在、ローカルでは正常に動作していますが、ubuntu ボックスで gulp タスクを実行するとgulp-sass
、出力は 1 回しか生成されません。
これはサスです:
@function multipleBoxShadow($stars, $opacity) {
$value: '#{random(2000)}px #{random(2000)}px rgba(255, 255, 255, #{$opacity})';
@for $i from 2 through $stars {
$value: '#{$value} , #{random(2000)}px #{random(2000)}px rgba(255, 255, 255, #{$opacity})'
}
@return unquote($value)
}
@mixin starBase($speed, $size, $amount, $opacity) {
box-shadow: multipleBoxShadow($amount, $opacity);
animation: animStar $speed linear infinite;
}
#stars {
@include starBase(50s, 1px, 700, 1);
}
これは、gulp-sass を使用した場合の ubuntu ボックスの出力です。
#stars {
animation: animStar 100s linear infinite;
box-shadow: 321px 321px rgba(255, 255, 255, 1) , 321px 321px rgba(255, 255, 255, 1) , 321px 321px rgba(255, 255, 255, 1) etc etc....
}
ご覧のとおり、出力が毎回ランダムであるローカルマシンとは異なり、乱数を1回だけ生成し、すべての繰り返しに同じ値を使用します。
その後、sass コンパイラを grunt 以外で使用しようとするとsass sass/default.css style/default.css
、random() は完全に失敗します。
#stars {
animation: animStar 100s linear infinite;
box-shadow: random(2000)px random(2000)px rgba(255, 255, 255, 1) , random(2000)px random(2000)px rgba(255, 255, 255, 1) etc etc....
}
random() を正しくコンパイルするために、ubuntu ボックスにインストールする必要があるものはありますか? 私はいつもそれがsassでネイティブになったと思っていました。
正しいコンパイルのデモを行う SassMeister は次のとおりです 。