나는 내 sass를 컴파일 한 다음 autoprefixit을 사용하여 gulp를 만들려고 노력 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를 사용할 때 작동하지 않습니다. 내 파일에 뭔가가 있다고 생각합니다.
답변
같은 문제가있었습니다. 나를 위해 노드 업데이트가 작동하지 않았지만 gulpfile의 맨 처음에 이것을 추가하면 다음과 같이 작동했습니다.
require('es6-promise').polyfill();
답변
다음을 사용하여 node.js를 최신 버전으로 업데이트했습니다.
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
여기에 표시된대로 내 Ubuntu 컴퓨터의 경우 .
그 후 다음을 사용하여 NPM을 업데이트했습니다.
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
여기에 표시된대로 .
이제 gulp-autoprefixer
시작은 작동하지만에서 오류가 발생했습니다 gulp-sass
. 이 지침을 사용하여 업데이트했습니다.
- node_modules 폴더 삭제
- package.json 파일에서 gulp-sass 제거
- package.json 파일에서 node-sass를 제거하십시오 (해당 파일이있는 경우).
- npm install gulp-sass –save-dev 실행
- 필요에 따라 Gulp 작업 업데이트
여기 에서 발견 내가 가지고 부탁해 "gulp-sass": "^2.0.4"
이 내 모든 문제를 해결했습니다.
조언과 도움을 주셔서 감사합니다.
답변
package.json이있는 프로젝트 위치에 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 ) 을 시작하려고 할 때 동일한 오류가 발생했습니다 . (내 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
이 변경 후 문제가 해결되어 로컬 서버를 시작할 수있었습니다.