0

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 は次のとおりです

4

1 に答える 1

0

サーバーに間違ったバージョンの sass がインストールされていることがわかりました。おそらく最初にそれを確認する必要があります。sass コンパイラを使用して動作するようになりましたが、sass-gulpまだ random() を生成するのは 1 回だけです。

于 2015-05-15T10:09:27.293 に答える