upgrading compress clean cannot node.js npm gulp autoprefixer

node.js - compress - upgrading autoprefixer



Gulp-autoprefixer lanzando ReferenceError: la promesa no está definida (4)

Intento hacer que un trago compile mi sass y luego lo repare automáticamente con gulp-autoprefixer pero recibo un error.

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'')); });

Estoy tratando de ejecutar este Gulpfile.js y estoy usando:

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

y NPM versión 1.3.10

Cuando ejecuto gulp test me sale esto:

/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)

Realmente no sé qué estoy haciendo mal. No funciona cuando uso sass o CSS simple. Creo que es algo con mis archivos.


Actualicé node.js a la última versión usando:

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

para mi máquina Ubuntu, como se muestra here .

Después de eso actualicé NPM usando:

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

Como se muestra here .

Ahora el gulp-autoprefixer comienza a funcionar pero recibí un error de gulp-sass . Lo actualicé usando estas instrucciones:

  1. Eliminar su carpeta node_modules
  2. Elimine gulp-sass de su archivo package.json
  3. Elimine node-sass de su archivo package.json (si lo tiene allí)
  4. Ejecute npm install gulp-sass --save-dev
  5. Actualice su tarea Gulp según sea necesario

Encontrado here . Ahora tengo "gulp-sass": "^2.0.4" y esto solucionó todos mis problemas.

Gracias por consejos y ayuda.


Esto no responde la pregunta directamente, pero podría ser útil para las personas que obtienen este error cuando intentan ejecutar el tutorial iónico 2.

Como señalaron otras respuestas, el problema es que es6-promise .

Recibí el mismo error al intentar iniciar el tutorial de ionic 2 ( https://github.com/driftyco/ionic2-starter-tutorial ): (mi versión de ionic 2 es 2.0.0-beta.25 y la última confirmación del tutorial es ed9ef2fcce887e4d1c08c375c849b06b8394bad7 )

Este es el seguimiento de la pila que obtuve al intentar ejecutar la aplicación con 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)

Nuevamente, como lo señalan otras respuestas, así es como se resuelve esto:

  1. edite gulpfile.js y agregue en la línea 6: require(''es6-promise'').polyfill();

  2. instale la dependencia que falta con: npm install es6-promise --save

Después de estos cambios, se solucionó el problema y pude iniciar el servidor local.


Instale es6-promise en su ubicación de proyecto donde existe package.json

npm install es6-promise

Luego, haga que la primera línea de su gulpfile.js sea el siguiente código:

var Promise = require(''es6-promise'').Promise;


Tuve el mismo problema. Para mí, el nodo de actualización no funcionó, pero agregar esto al comienzo de mi archivo de memoria sí lo hizo:

require(''es6-promise'').polyfill();