গল্প ঘড়িটি ভাঙ্গা / ক্র্যাশ করা থেকে ত্রুটিগুলি রোধ করুন


178

আমি গুল্প ৩.6.২ চালাচ্ছি এবং নিম্নলিখিত টাস্কটি অনলাইনে একটি নমুনা থেকে প্রস্তুত করা হয়েছে

gulp.task('watch', ['default'], function () {
  gulp.watch([
    'views/**/*.html',        
    'public/**/*.js',
    'public/**/*.css'        
  ], function (event) {
    return gulp.src(event.path)
      .pipe(refresh(lrserver));
  });

  gulp.watch(['./app/**/*.coffee'],['scripts']);
  gulp.watch('./app/**/*.scss',['scss']);
});

আমার কফিস্ক্রিপ্ট গল্প ঘড়ির স্টপগুলিতে যে কোনও সময় ত্রুটি আছে - অবশ্যই আমি যা চাই তা তা নয়।

অন্যত্র প্রস্তাবিত হিসাবে আমি এটি চেষ্টা করেছিলাম

gulp.watch(['./app/**/*.coffee'],['scripts']).on('error', swallowError);
gulp.watch('./app/**/*.scss',['scss']).on('error', swallowError);
function swallowError (error) { error.end(); }

কিন্তু এটি কাজ করে না বলে মনে হচ্ছে।

আমি কি ভুল করছি?


@ অপেরুর জবাবের জবাবে আমি আমার swallowErrorপদ্ধতিটি পরিবর্তন করেছি এবং পরিবর্তে নিম্নলিখিতটি চেষ্টা করেছি:

gulp.task('scripts', function () {
  gulp.src('./app/script/*.coffee')
    .pipe(coffee({ bare: true }))
    .pipe(gulp.dest('./public/js'))
    .on('error', swallowError);
});

পুনরায় চালু করা হয়েছে এবং তারপরে আমার কফি ফাইলে একটি সিনট্যাক্স ত্রুটি তৈরি করেছে। একই সমস্যা:

[gulp] Finished 'scripts' after 306 μs

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
Error: W:\bariokart\app\script\trishell.coffee:5:1: error: unexpected *
*
^
  at Stream.modifyFile (W:\bariokart\node_modules\gulp-coffee\index.js:37:33)
  at Stream.stream.write (W:\bariokart\node_modules\gulp-coffee\node_modules\event-stream\node_modules\through\index.js:26:11)
  at Stream.ondata (stream.js:51:26)
  at Stream.EventEmitter.emit (events.js:95:17)
  at queueData (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:43:21)
  at next (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:71:7)
  at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:85:7
  at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\lib\src\bufferFile.js:8:5
  at fs.js:266:14
  at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\graceful-fs\graceful-fs.js:104:5
  at Object.oncomplete (fs.js:107:15)

3
github.com/gulpjs/gulp/tree/master/docs/recips এ অফিশিয়াল গুল্প রেসিপিগুলি দেখুন যার জন্য একটি রেসিপি রয়েছে ... স্ট্রিম- কম্বিনার 2 ব্যবহার করে স্ট্রিম-টু-হ্যান্ডেল-ত্রুটির সমন্বয় করা এটিই অফিশিয়াল উত্তর!
danday74

উত্তর:


257

আপনার swallowErrorফাংশনটি দেখতে এমন হওয়া উচিত:

function swallowError (error) {

  // If you want details of the error in the console
  console.log(error.toString())

  this.emit('end')
}

আমি মনে করি errorযে টাস্কটি পড়েছিল তার ইভেন্টে আপনাকে এই ফাংশনটি আবদ্ধ করতে হবে, watchটাস্কটি নয়, কারণ সমস্যাটিই এখানে আসে না, আপনার প্রতিটি কর্মের ক্ষেত্রে এই ত্রুটি কলব্যাক সেট করা উচিত যা ব্যর্থ হতে পারে যেমন প্লাগইনগুলি যেমন আপনার যখন ব্রেক হয় কাজটি থামাতে ;প্রতিরোধ করার জন্য, একটি বা অন্য কিছু মিস করেছি watch

উদাহরণ:

gulp.task('all', function () {
  gulp.src('./app/script/*.coffee')
    .pipe(coffee({ bare: true }))
    .on('error', swallowError)
    .pipe(gulp.dest('./public/js'))

  gulp.src('css/*.scss')
    .pipe(sass({ compass: true }))
    .on('error', swallowError)
    .pipe(cssmin())
    .pipe(gulp.dest('dist'))
})

পর্যায়ক্রমে, আপনি যদি অন্য মডিউল অন্তর্ভুক্ত করতে আপত্তি না করেন, তবে gulp- use এর লগ ফাংশনটি আপনাকে আপনার অতিরিক্ত ক্রিয়াকলাপটি ঘোষণা থেকে বিরত রাখতে ব্যবহার করতে পারেন :gulpfile

.on('error', gutil.log)

তবে আমি দারুণ গল্প-প্লাম্বার প্লাগইনটি একবার দেখার পরামর্শ দিতে পারি, যা ইভেন্টটির onerrorহ্যান্ডলারটি সরিয়ে দিতে ব্যবহৃত হয় error, যার ফলে স্ট্রিমগুলি ভেঙে যায়। এটি ব্যবহার করা খুব সহজ এবং এটি ব্যর্থ হতে পারে এমন সমস্ত কার্যগুলি আপনাকে আটকাতে বাধা দেয়।

gulp.src('./app/script/*.coffee')
  .pipe(plumber())
  .pipe(coffee({ bare: true }))
  .pipe(gulp.dest('./public/js'))

সম্পর্কিত প্লাগইনটির নির্মাতা এই নিবন্ধটিতে এটি সম্পর্কে আরও তথ্য ।


আমি তোমার সাহায্য কে সাধুবাদ জানাই. আমার সম্পাদনা দেখুন। আমি মনে করি আপনি যা বলছেন আমি তা করছি এবং এটি এখনও কার্যকর হয় না
জর্জ মাউয়ার

2
আপনি চূড়ান্ত সঠিক জিনিসটি প্রতিফলিত করতে আপনার উত্তরটি সম্পাদনা করতে চাইতে পারেন যাতে ভবিষ্যতে যে কেউ এটি আবিষ্কার করে তাকে মন্তব্য শৃঙ্খলা পড়তে হবে না।
জর্জ মাউয়ার

1
এটি সব ভাল এবং ভাল, তবে কেন আমাকে নিজের ত্রুটি হ্যান্ডলার লিখতে হবে? আমি গুল্প বা গ্রান্ট বা যে কোনও প্রাকপ্রসেসিং টুল ব্যবহার করি না কেন তার পুরো কারণটি হ'ল এটি আমার জন্য নোংরা কাজ করে। আমার কোডের কোথাও একটি সিনট্যাক্স ত্রুটি (যা ঘটতে বাধ্য) সম্পূর্ণ সিস্টেমটিকে থামতে দেবে না। এটি প্রিপ্রোসের জিইউআইয়ের সাথে তুলনা করুন (অন্য একটি প্রিপ্রোসেসর) - এই সরঞ্জামটি আপনাকে জানায় যে আপনার ত্রুটিটি ঠিক কোথায়, এবং কোনও সমস্যা হলে হ্যাং বা প্রস্থান করে না।
কোকোডোকো

1
আশ্চর্যজনক যে কেউ কেউ জুড়ে এমনকি স্টিম-কম্বিনার 2 উল্লেখ করেনি যদিও এটি সরকারী গোলাপের রেসিপি! প্লাম্বার এছাড়াও ভাল তবে আমি সবসময় গুল্প রেসিপি অনুসরণ করতে পছন্দ করি, গুল্প রেসিপি গুলপ
danday74

1
একই প্রহেলিকা মুখোমুখি, আমি একটি মোড়কের প্রায় ব্যবহারের সিদ্ধান্ত নিয়েছে gulp.watch()যে যোগ করে .on('error', function() { this.emit('end') })ঘড়ি ফাংশনের ফলাফল, যেমন বিশেষভাবে ঘড়ি টাস্ক যে আমি ঝুলন্ত আপ করার প্রাণবন্ত করতে চাই না। সত্যই ভাল কাজ করে এবং ব্যর্থ পৃথক কাজগুলি এখনও তাদের নিজস্ব ত্রুটি বার্তা মুদ্রণ করে। কোডটি দেখুন: github.com/specious/specious.github.io/commit/f8571d28
tknomad

20

উপরের উদাহরণগুলি আমার পক্ষে কার্যকর হয়নি। নিম্নলিখিতগুলি যদিও করেছে:

var plumber = require('gulp-plumber');
var liveReload = require('gulp-livereload');
var gutil = require('gulp-util');
var plumber = require('gulp-plumber');
var compass = require('gulp-compass');
var rename = require('gulp-rename');
var minifycss = require('gulp-minify-css');
var notify = require('gulp-notify');

gulp.task('styles', function () {
    //only process main.scss which imports all other required styles - including vendor files.
    return gulp.src('./assets/scss/main.scss')
            .pipe(plumber(function (error) {
                gutil.log(error.message);
                this.emit('end');
            }))
            .pipe(compass({
                config_file: './config.rb',
                css: './css'
                , sass: './assets/scss'
            }))
            //minify files
            .pipe(rename({suffix: '.min'}))
            .pipe(minifycss())

            //output
            .pipe(gulp.dest('./css'))
            .pipe(notify({message: 'Styles task complete'}));
});

gulp.task('watch', function () {
    liveReload.listen();
    gulp.watch('assets/scss/**/*.scss', ['styles']);
});

এটি দুর্দান্ত, তবে ত্রুটি থাকলে (অবশেষে টার্মিনালে এটি কেবল লগ ত্রুটি) ছিল কিনা তা অবহিত করাও ভাল
রাইসন

4

ফাইলগুলির একটি ফর্ম্যাট সহ

(উদা: * শুধুমাত্র কফি)

আপনি যদি কেবলমাত্র একটি ফর্ম্যাট ফাইলের সাথে কাজ করতে চান তবে gulp-plumberআপনার সমাধান।

উদাহরণস্বরূপ, সমৃদ্ধ হ্যান্ডেল ত্রুটি এবং কফিসিপিটিংয়ের জন্য সতর্কতা:

gulp.task('scripts', function() {
  return gulp.src(['assets/scripts/**/*.coffee'])
    .pipe(plumber())
    .pipe(coffeelint())
    .pipe(coffeelint.reporter())
    .pipe(lintThreshold(10, 0, lintThresholdHandler))
    .pipe(coffee({
      bare: true
    }))
    .on('error', swallowError)
    .pipe(concat('application.js'))
    .pipe(gulp.dest('dist/scripts'))
    .pipe(rename({ suffix: '.min' }))
    .pipe(uglify())
    .pipe(gulp.dest('dist/scripts'))
    .pipe(notify({ message: 'Scripts task complete' }));
});

একাধিক ধরণের ফাইল ফর্ম্যাট সহ

(উদাঃ: *। কফি এবং * .জেএস একই সাথে)

তবে আপনি যদি একাধিক ধরণের ফাইল ফর্ম্যাট (উদাহরণস্বরূপ: *.jsএবং *.coffee) এর সাথে কাজ না করেন তবে আমি আমার সমাধান পোস্ট করব।

আমি এখানে কিছু বর্ণনার আগে এখানে একটি স্ব-বর্ণনামূলক কোড পোস্ট করব।

gulp.task('scripts', function() {
  // plumber don't fetch errors inside gulpif(.., coffee(...)) while in watch process
  return gulp.src(['assets/scripts/**/*.js', 'assets/scripts/**/*.coffee'])
    .pipe(plumber())
    .pipe(gulpif(/[.]coffee$/, coffeelint()))
    .pipe(coffeelint.reporter())
    .pipe(lintThreshold(10, 0, lintThresholdHandler))
    .pipe(gulpif(/[.]coffee$/, coffee({ // if some error occurs on this step, plumber won't catch it
      bare: true
    })))
    .on('error', swallowError)
    .pipe(concat('application.js'))
    .pipe(gulp.dest('dist/scripts'))
    .pipe(rename({ suffix: '.min' }))
    .pipe(uglify())
    .pipe(gulp.dest('dist/scripts'))
    .pipe(notify({ message: 'Scripts task complete' }));
});

আমি gulp-plumberএবং gulp-ifব্যবহার করে সমস্যার মুখোমুখি হয়েছিgulp.watch(...

সম্পর্কিত সমস্যা এখানে দেখুন: https://github.com/floatDP/gulp-plumber/issues/23

সুতরাং আমার জন্য সর্বোত্তম বিকল্পটি ছিল:

  • ফাইল হিসাবে প্রতিটি অংশ, এবং পরে সম্মতি । একাধিক টাস্ক তৈরি করুন যা প্রতিটি অংশকে পৃথক ফাইলে প্রক্রিয়া করতে পারে (যেমন গ্রান্টগুলি করে) এবং সেগুলিকে সম্মতি জানাতে পারে
  • প্রতিটি অংশ স্ট্রিম হিসাবে, এবং পরে স্ট্রিমগুলি মিশ্রিত করে । দুটি স্ট্রিম ব্যবহার করে একটিকে merge-stream(যা থেকে তৈরি করা হয়েছিল event-stream) একত্রিত করুন এবং কাজটি চালিয়ে যান (আমি এটি প্রথমে চেষ্টা করেছি, এবং এটি আমার পক্ষে ভাল কাজ করে, তাই এটি আগেরটির চেয়ে দ্রুত সমাধান)

প্রতিটি অংশ স্ট্রিম হিসাবে, এবং পরে স্ট্রিমগুলি মিশ্রিত করে

তার আমার কোডের প্রধান অংশ:

gulp.task('scripts', function() {
  coffeed = gulp.src(['assets/scripts/**/*.coffee'])
    .pipe(plumber())
    .pipe(coffeelint())
    .pipe(coffeelint.reporter())
    .pipe(lintThreshold(10, 0, lintThresholdHandler))
    .pipe(coffee({
      bare: true
    }))
    .on('error', swallowError);

  jsfiles = gulp.src(['assets/scripts/**/*.js']);

  return merge([jsfiles, coffeed])
    .pipe(concat('application.js'))
    .pipe(gulp.dest('dist/scripts'))
    .pipe(rename({ suffix: '.min' }))
    .pipe(uglify())
    .pipe(gulp.dest('dist/scripts'))
    .pipe(notify({ message: 'Scripts task complete' }));
});

ফাইল হিসাবে প্রতিটি অংশ, এবং পরে সম্মতি

যদি এটি অংশগুলিতে আলাদা করতে হয় তবে প্রতিটি অংশে একটি ফলাফল ফাইল তৈরি করা উচিত। প্রাক্তন জন্য .:

gulp.task('scripts-coffee', function() {

  return gulp.src(['assets/scripts/**/*.coffee'])
    .pipe(plumber())
    .pipe(coffeelint())
    .pipe(coffeelint.reporter())
    .pipe(lintThreshold(10, 0, lintThresholdHandler))
    .pipe(coffee({
      bare: true
    }))
    .on('error', swallowError)
    .pipe(concat('application-coffee.js'))
    .pipe(gulp.dest('dist/scripts'));

});

gulp.task('scripts-js', function() {

  return gulp.src(['assets/scripts/**/*.js'])
    .pipe(concat('application-coffee.js'))
    .pipe(gulp.dest('dist/scripts'));

});

gulp.task('scripts', ['scripts-js', 'scripts-coffee'], function() {

  var re = gulp.src([
    'dist/scripts/application-js.js', 'dist/scripts/application-coffee.js'
  ])
    .pipe(concat('application.js'))
    .pipe(gulp.dest('dist/scripts'))
    .pipe(rename({ suffix: '.min' }))
    .pipe(uglify())
    .pipe(gulp.dest('dist/scripts'))
    .pipe(notify({ message: 'Scripts task complete' }));

  del(['dist/scripts/application-js.js', 'dist/scripts/application-coffee.js']);

  return re;

});

পুনশ্চ:

এখানে নোড মডিউল এবং ফাংশন ব্যবহৃত হত:

// Load plugins
var gulp = require('gulp'),
    uglify = require('gulp-uglify'),
    rename = require('gulp-rename'),
    concat = require('gulp-concat'),
    notify = require('gulp-notify'),
    plumber = require('gulp-plumber'),
    merge = require('ordered-merge-stream'),
    replace = require('gulp-replace'),
    del = require('del'),
    gulpif = require('gulp-if'),
    gulputil = require('gulp-util'),
    coffee = require('gulp-coffee'),
    coffeelint = require('gulp-coffeelint),
    lintThreshold = require('gulp-coffeelint-threshold');

var lintThresholdHandler = function(numberOfWarnings, numberOfErrors) {
  var msg;
  gulputil.beep();
  msg = 'CoffeeLint failure; see above. Warning count: ';
  msg += numberOfWarnings;
  msg += '. Error count: ' + numberOfErrors + '.';
  gulputil.log(msg);
};
var swallowError = function(err) {
  gulputil.log(err.toString());
  this.emit('end');
};

আমি এখনও এই মন্তব্যগুলির জন্য উন্নতি দেখতে। গতির তুলনা এবং কেবল .js ফাইলের লিঙ্ক (মিনিডযুক্ত বা 3 ডি পার্টির লাইব্রেরি বাদে বা বোওয়ার_কম্পোন্টগুলি থেকে libs)। তবে মূলত
গুগল ডটকম

3

আমি গাল্প প্লাম্বারটি ব্যবহার করতে পছন্দ করি কারণ এটি কোনও কাজে বিশ্বব্যাপী শ্রোতা যুক্ত করতে পারে এবং অর্থপূর্ণ বার্তা প্রদর্শিত হতে পারে।

var plumber = require('gulp-plumber');

gulp.task('compile-scss', function () {
    gulp.src('scss/main.scss')
        .pipe(plumber())
        .pipe(sass())
        .pipe(autoprefixer())
        .pipe(cssnano())
        .pipe(gulp.dest('css/'));
});

তথ্যসূত্র: https://scotch.io/tutorials/prevent-erferences-from-crashing-gulp-watch


2

আমি নিম্নলিখিত হ্যাকটি https://github.com/gulpjs/gulp/issues/71 এর কার্যকার্য হিসাবে প্রয়োগ করেছি :

// Workaround for https://github.com/gulpjs/gulp/issues/71
var origSrc = gulp.src;
gulp.src = function () {
    return fixPipe(origSrc.apply(this, arguments));
};
function fixPipe(stream) {
    var origPipe = stream.pipe;
    stream.pipe = function (dest) {
        arguments[0] = dest.on('error', function (error) {
            var state = dest._readableState,
                pipesCount = state.pipesCount,
                pipes = state.pipes;
            if (pipesCount === 1) {
                pipes.emit('error', error);
            } else if (pipesCount > 1) {
                pipes.forEach(function (pipe) {
                    pipe.emit('error', error);
                });
            } else if (dest.listeners('error').length === 1) {
                throw error;
            }
        });
        return fixPipe(origPipe.apply(this, arguments));
    };
    return stream;
}

এটি আপনার gulpfile.js এ যুক্ত করুন এবং এটির মতো ব্যবহার করুন:

gulp.src(src)
    // ...
    .pipe(uglify({compress: {}}))
    .pipe(gulp.dest('./dist'))
    .on('error', function (error) {
        console.error('' + error);
    });

এটি আমার কাছে সবচেয়ে প্রাকৃতিক ত্রুটিটি পরিচালনা করার মতো মনে হয়। যদি কোনও ত্রুটি হ্যান্ডলার না থাকে তবে এটি ত্রুটি ছুঁড়ে দেবে। নোড v0.11.13 এর সাথে পরীক্ষিত।


2

এর সহজ সমাধান হ'ল gulp watchবাশ (বা শ) শেলের মধ্যে অসীম লুপ স্থাপন করা।

while true; do gulp; gulp watch; sleep 1; done

আপনি নিজের জাভাস্ক্রিপ্ট সম্পাদনা করার সাথে সাথে এই স্ক্রিনের দৃশ্যমান স্থানে এই কমান্ডের আউটপুট রাখুন। যখন আপনার সম্পাদনাগুলির ফলে কোনও ত্রুটির ফলস্বরূপ, গুলপ ক্রাশ হবে, তার স্ট্যাক ট্রেসটি মুদ্রণ করবে, এক সেকেন্ডের জন্য অপেক্ষা করবে এবং আপনার উত্স ফাইলগুলি আবার দেখা শুরু করবে। তারপরে আপনি সিনট্যাক্স ত্রুটিটি সংশোধন করতে পারবেন এবং গাল্প নির্দেশ করে যে সম্পাদনাটি কোনও সাফল্য ছিল কিনা তা স্বাভাবিক আউটপুট মুদ্রণ করে, বা ক্র্যাশ করে (আবার পুনরায় শুরু করা)।

এটি একটি লিনাক্স বা ম্যাক টার্মিনালে কাজ করবে। আপনি যদি উইন্ডোজ ব্যবহার করছেন তবে সাইগউইন বা উবুন্টু বাশ (উইন্ডোজ 10) ব্যবহার করুন।


এই কি ভাষা? এছাড়াও, প্রস্তাবিত সমাধানগুলি দিয়ে এর কোনও লাভ আছে?
জর্জ মাউর 21

এটি বাশ / এস এ লেখা হয়েছে। এটি অন্যান্য সমাধানগুলির চেয়ে কম কোড প্রয়োজন এবং এটি মনে রাখা এবং প্রয়োগ করা সহজ।
জেসি হোগান

আপনি কি এই সত্যটি সম্পাদন করতে পারবেন যে এটির উত্তাপ এবং এটি সম্পর্কে আপনার অন্যান্য ভাবনাগুলি আপনার উত্তরে? আমি একমত নই যে এর চেয়ে সহজতর প্লাম্বার, তবে এটি একটি বৈধ (যদি ক্রস প্ল্যাটফর্ম না হয়) পদ্ধতির। আমি প্রথমে ভোট দিয়েছি কারণ এটি কোন ভাষায় ছিল তা এমনকি পরিষ্কার ছিল না এবং আপনি উত্তরটি সম্পাদনা না করলে আমি আমার ভোট পরিবর্তন করতে পারি না।
জর্জ মাউয়ার 15

1
সুতরাং আপনি স্ট্রিমটি ক্র্যাশ করে পুরো প্রক্রিয়াটি পুনরায় আরম্ভ করতে পছন্দ করেন যা কেবল ত্রুটিটি ধরা না দিয়ে আপনি অসীম লুপের সাথে কি করছেন তার উপর নির্ভর করে বেশ কিছুটা লাগে? আমার কাছে কিছুটা ঝামেলা লাগছে। এবং কম কোডের কথা বললে, আপনার 16 টি চর প্রয়োজন যাতে আপনার কাজে প্লাম্বার যুক্ত হয় তবে আপনার সমাধানটি গণনা ছাড়াই 36 টি করে লাগে gulp watch
বালথাজার

প্রতিক্রিয়াটির জন্য ধন্যবাদ, জর্জমৌয়ার, আমি সম্পাদনাগুলি তৈরি করেছি এবং এটি যে পরিবেশ / প্ল্যাটফর্মগুলির মধ্যে কাজ করে সেগুলি সম্পর্কে লিখেছি
জেসি হোগান

1

টাইপরাইটারে মুদ্রি

এটিই আমার পক্ষে কাজ করেছিল। আমি Typescriptহ্যান্ডল করতে ফাংশনটি ( thisকীওয়ার্ডের সাথে বিভ্রান্তি এভয়েড ) সাথে কাজ করেছি এবং আলাদা করেছি less। এটি Javascriptপাশাপাশি কাজ করে ।

var gulp = require('gulp');
var less = require('gulp-less');

gulp.task('less', function() {
    // writing a function to avoid confusion of 'this'
    var l = less({});
    l.on('error', function(err) {
        // *****
        // Handle the error as you like
        // *****
        l.emit('end');
    });

    return gulp
        .src('path/to/.less')
        .pipe(l)
        .pipe(gulp.dest('path/to/css/output/dir'))
})

এখন, আপনি যখন watch .lessফাইল করেন এবং একটি errorঘটে যায়, তখন এটি watchবন্ধ হবে না এবং আপনার পরিবর্তন অনুসারে নতুন পরিবর্তনগুলি প্রক্রিয়া করা হবে less task

দ্রষ্টব্য : আমি চেষ্টা করেছি l.end();; তবে এটি কার্যকর হয়নি work তবে l.emit('end');পুরোপুরি কাজ করে।

এই সাহায্য আশা করি। শুভকামনা


1

এটি আমার জন্য কাজ করেছে ->

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

gulp.task('sass', function(){
    setTimeout(function(){
        return gulp.src('sass/*.sass')
        .pipe(sass({indentedSyntax: true}))
        .on('error', console.error.bind(console))
        .pipe(gulp.dest('sass'));
    }, 300);
});



gulp.task('watch', function(){
    gulp.watch('sass/*.sass', ['sass']);
});

gulp.task('default', ['sass', 'watch'])

আমি কেবল .on ('ত্রুটি', কনসোল.অরর.বাইন্ড (কনসোল)) লাইনটি যুক্ত করেছি, তবে আমাকে গল্প কমান্ডটি রুট হিসাবে চালাতে হয়েছিল। আমি পিএইচপি অ্যাপ্লিকেশনটিতে নোড গাল্প চালাচ্ছি তাই আমার একটি সার্ভারে একাধিক অ্যাকাউন্ট রয়েছে, যার কারণে আমি সিনট্যাক্স ত্রুটিগুলিতে গুল্প ভাঙার বিষয়টি নিয়ে দৌড়েছি কারণ আমি রুট হিসাবে গাল্প চালাচ্ছিলাম না ... সম্ভবত প্লাম্বার এবং এর কিছু আমি যদি মূল হিসাবে দৌড়ে যাই তবে এখানে অন্য উত্তরগুলি আমার পক্ষে কাজ করবে। Accio কোড https://www.youtube.com/watch?v=iMR7hq4AB উত্তরে ক্রেডিট করুন । তিনি বলেছিলেন যে ত্রুটিটি পরিচালনা করে এটি আপনাকে ত্রুটিটি কোন লাইনটি রয়েছে এবং এটি কনসোলে কী রয়েছে তা নির্ধারণ করতে সহায়তা করে, তবে সিনট্যাক্স ত্রুটিটি ভাঙ্গা থেকে আটকাতে বাধা দেয়। তিনি বলেছিলেন এটি হালকা ওজন ফিক্সের এক প্রকারের, তাই আপনার সন্ধানের জন্য এটি কাজ করবে কিনা তা নিশ্চিত নন। দ্রুত ফিক্স, একটি শট মূল্য। আশা করি এটি কাউকে সাহায্য করবে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.