1. ホーム
  2. node.js

[解決済み] Gulp-autoprefixer throw ReferenceError: Promiseは定義されていません。

2023-08-01 01:53:10

質問

gulpでsassをコンパイルし、オートプレフィクスで gulp-autoprefixer を実行しようとしましたが、エラーが発生しました。

var gulp = require('gulp'),
    sass = require('gulp-sass'),
    autoprefixer = require('gulp-autoprefixer');

gulp.task('test', function(){
    gulp.src('_sass/main.sass')
        .pipe(sass())
        .pipe(autoprefixer()) 
        .pipe(gulp.dest('./assets/css')); 
});

これを実行しようとすると Gulpfile.js を使っています。

"gulp": "~3.9.0",
"gulp-sass": "~2.0.4",
"gulp-autoprefixer": "~3.0.1",

とNPMのバージョン 1.3.10

を実行すると gulp test を実行すると、このようになります。

/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:152
        this.processing = new Promise(function (resolve, reject) {
                              ^
ReferenceError: Promise is not defined
    at LazyResult.async (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:152:31)
    at LazyResult.then (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:75:21)
    at DestroyableTransform._transform (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/index.js:28:13)
    at DestroyableTransform.Transform._read (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:10)
    at DestroyableTransform.Transform._write (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:160:12)
    at doWrite (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:326:12)
    at writeOrBuffer (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:312:5)
    at DestroyableTransform.Writable.write (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:239:11)
    at write (/home/matei/Tests/test-4/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
    at flow (/home/matei/Tests/test-4/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)

何を間違えているのかよくわかりません。私はsassまたはプレーンCSSを使用するときに動作しません。私は私のファイルの何かだと思います。

どのように解決するには?

.NETを使用してnode.jsを最新版に更新しました。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

をUbuntuのマシンに適用すると、次のようになります。 ここで .

その後、.NET Frameworkを使用してNPMを更新しました。

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

このように ここで .

ここで gulp-autoprefixer は動作していますが gulp-sass . 私はこの命令を使用してそれを更新しました。

  1. node_modules フォルダを削除します。
  2. package.jsonファイルからgulp-sassを削除します。
  3. package.json ファイルから node-sass を削除します (含まれている場合)。
  4. npm install gulp-sass --save-dev を実行します。
  5. 必要に応じてGulpタスクを更新します。

発見 ここで .現在、私は "gulp-sass": "^2.0.4" で、これですべての問題が解決しました。

アドバイスと助けをありがとうございました。