私はgulpにsassをコンパイルさせ、次にgulp-autoprefixer
でautoprefixitをコンパイルしようとしましたが、エラーが発生しています。
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を使用すると動作しません。私のファイルには何かがあると思います。
以下を使用してnode.jsを最新バージョンに更新しました。
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_4.x | Sudo -E bash -
Sudo apt-get install -y nodejs
here に示すように、私のUbuntuマシンの場合。
その後、次を使用してNPMを更新しました。
Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
here のように。
gulp-autoprefixer
は動作を開始しましたが、gulp-sass
からエラーが発生しました。私はこの指示を使用して更新しました:
here が見つかりました。今では"gulp-sass": "^2.0.4"
があり、これですべての問題が修正されました。
アドバイスと助けてくれてありがとう。
同じ問題がありました。私にとっては、ノードの更新は機能しませんでしたが、gulpfileの最初にこれを追加すると機能しました:
require('es6-promise').polyfill();
Package.jsonが存在するurプロジェクトの場所にes6-promiseをインストールします
npm install es6-promise
次に、gulpfile.jsの最初の行を次のコードにします。
var Promise = require('es6-promise').Promise;
これは質問に直接答えるものではありませんが、ionic 2チュートリアルを実行しようとするとこのエラーが発生する場合に役立ちます。
他の回答で指摘されているように、問題はes6-promise
が欠落していることです。
ionic 2チュートリアルを開始しようとすると同じエラーが発生しました( https://github.com/driftyco/ionic2-starter-tutorial ):(my ionic 2バージョンは2.0.0-beta.25、最新のチュートリアルコミットはed9ef2fcce887e4d1c08c375c849b06b8394bad7)
これは、ionic serve
でアプリを実行しようとしたときに得たスタックトレースです。
Running 'serve:before' gulp task before serve
[18:37:00] Starting 'clean'...
[18:37:01] Finished 'clean' after 1.02 s
[18:37:01] Starting 'watch'...
[18:37:01] Starting 'sass'...
[18:37:01] Starting 'html'...
[18:37:01] Starting 'fonts'...
[18:37:01] Starting 'scripts'...
[18:37:01] Finished 'scripts' after 62 ms
[18:37:01] Finished 'html' after 72 ms
[18:37:01] Finished 'fonts' after 77 ms
Caught exception:
ReferenceError: Promise is not defined
at LazyResult.async (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:157:31)
at LazyResult.then (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:79:21)
at DestroyableTransform._transform (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/index.js:24:6)
at DestroyableTransform.Transform._read (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:159:10)
at DestroyableTransform.Transform._write (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:147:83)
at doWrite (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:313:64)
at writeOrBuffer (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:302:5)
at DestroyableTransform.Writable.write (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:241:11)
at DestroyableTransform.ondata (/home/stitakis/dev/playground/ionic2/myTutorial/node_modules/ionic-gulp-sass-build/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:531:20)
at DestroyableTransform.EventEmitter.emit (events.js:95:17)
繰り返しますが、他の回答で指摘されているように、これはこれを解決する方法です:
gulpfile.jsを編集し、6行目に追加します:require('es6-promise').polyfill();
npm install es6-promise --save
で不足している依存関係をインストールします
この変更の後、問題は修正され、ローカルサーバーを起動できました。