Gulp-autoprefixer throwing ReferenceError: Promise is not defined

后端 未结 4 1953
长情又很酷
长情又很酷 2021-01-30 02:18

I try to make a gulp compile my sass then autoprefixit with gulp-autoprefixer but i\'m getting an error.

var gulp = require(\'gulp\'),
    sass = re         


        
相关标签:
4条回答
  • 2021-01-30 02:31

    Had the same issue. For me, updating node didn't work but adding this at the very beginning of my gulpfile did:

    require('es6-promise').polyfill();
    
    0 讨论(0)
  • 2021-01-30 02:33

    I updated node.js to the latest version using :

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

    for my Ubuntu machine, as shown here.

    After that i updated NPM using :

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

    As shown here.

    Now the gulp-autoprefixer start working but i got an error from gulp-sass. I updated it using this instruction :

    1. Delete your node_modules folder
    2. Remove gulp-sass from your package.json file
    3. Remove node-sass from your package.json file (if you have it in there)
    4. Run npm install gulp-sass --save-dev
    5. Update your Gulp task as required

    Found here.Now i have "gulp-sass": "^2.0.4" and this fixed all my problems.

    Thanks for advice and help.

    0 讨论(0)
  • 2021-01-30 02:47

    This does not answer the question directly but it might be useful for people that get this error when trying to run the ionic 2 tutorial.

    As pointed by other answers the problem is that es6-promise is missing.

    I got the same error when trying to start the ionic 2 tutorial (https://github.com/driftyco/ionic2-starter-tutorial): (my ionic 2 version is 2.0.0-beta.25 and latest tutorial commit is ed9ef2fcce887e4d1c08c375c849b06b8394bad7)

    This is the stack trace I got when trying to run the app with 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) 
    

    Again, as pointed by other answers, this is how to solve this:

    1. edit gulpfile.js and add in line 6: require('es6-promise').polyfill();

    2. install the missing dependency with: npm install es6-promise --save

    After this changes, the problem was fixed and I was able to start the local server.

    0 讨论(0)
  • 2021-01-30 02:48

    Install es6-promise in ur project location where package.json exists

    npm install es6-promise
    

    Then make the first line of your gulpfile.js be the following code:

    var Promise = require('es6-promise').Promise;
    
    0 讨论(0)
提交回复
热议问题