আমি যখনই কিছুটা রান্না করি তখনই আমি একটি ত্রুটি পেয়েছি। - কার্য ফাংশন নির্দিষ্ট করা আবশ্যক


102

আমি নীচের কমান্ডটি চালানোর চেষ্টা করছি তবে দুর্ভাগ্যক্রমে আমি ত্রুটিগুলিতে চলেছি।

$ gulp build

আমার টার্মিনালে এবং আমি এই দৃ error় ত্রুটি পেয়েছি। আমি নোড এবং এনপিএম আনইনস্টল করেছি এবং বারউ ব্যবহার করে পুনরায় ইনস্টল করেছি - আমি কীভাবে নোড.জেএস সম্পূর্ণরূপে আনইনস্টল করব এবং এই পদক্ষেপগুলি দিয়ে শুরু থেকে পুনরায় ইনস্টল করব (ম্যাক ওএস এক্স) । আমার নোড সংস্করণটি v10.5.0 এবং এনপিএম সংস্করণ 6.1.0

আমার সিস্টেমটি হ'ল ম্যাকস হাই সিয়েরা 10.13.2

assert.js:269
    throw err;
    ^

AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (bulkit/startup-kit/node_modules/undertaker/lib/set-task.js:10:3)
    at Gulp.task (startup-kit/node_modules/undertaker/lib/task.js:13:8)
    at Object.<anonymous> 
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Module.require (internal/modules/cjs/loader.js:650:17)
    at require (internal/modules/cjs/helpers.js:20:18)

package.json

{
    "name": "bulkit-startup",
    "version": "0.0.1",
    "description": "Bulkit Startup Kit",
    "main": "Gruntfile.js",
    "devDependencies": {
        "autoprefixer": "^6.3.6",
        "browser-sync": "^2.24.5",
        "gulp": "^4.0.0",
        "gulp-clean": "^0.3.2",
        "gulp-concat": "^2.6.0",
        "gulp-postcss": "^6.1.0",
        "gulp-sass": "^2.2.0",
        "gulp-sourcemaps": "^1.6.0",
        "jquery": "^3.3.1",
        "mq4-hover-shim": "^0.3.0",
        "panini": "^1.3.0",
        "rimraf": "^2.5.2"
    },
    "engines": {
        "node": ">=0.10.1"
    },
    "scripts": {
        "start": "gulp",
        "build": "gulp build"
    },
    "repository": {
        "type": "git",
        "url": "https://github.com/cssninjaStudio/bulkit.git"
    },
    "bugs": {
        "url": "https://github.com/cssninjaStudio/bulkit/issues",
        "email": "support@cssninja.io"
    },
    "author": "Css Ninja <hello@cssninja.io> (https://cssninja.io/themes/bulkit)",
    "license": "Commercial",
    "private": true,
    "dependencies": {
        "bulma": "^0.7.0",
        "del": "^3.0.0",
        "jquery-waypoints": "^2.0.5",
        "jquery.counterup": "^2.1.0",
        "scrollreveal": "^3.4.0",
        "slick-carousel": "^1.8.1",
        "wallop": "^2.4.1"
    }
}

gulpfile.js

var gulp = require('gulp');
var clean = require('gulp-clean');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var mq4HoverShim = require('mq4-hover-shim');
var rimraf = require('rimraf').sync;
var browser = require('browser-sync');
var panini = require('panini');
var concat = require('gulp-concat');
var port = process.env.SERVER_PORT || 8080;
var nodepath =  'node_modules/';
var assetspath =  'assets/';

// Starts a BrowerSync instance
gulp.task('server', ['build'], function(){
    browser.init({server: './_site', port: port});
});

// Watch files for changes
gulp.task('watch', function() {
    gulp.watch('scss/**/*', ['compile-scss', browser.reload]);
    gulp.watch('sass/**/*', ['compile-sass', browser.reload]);
    gulp.watch('js/**/*', ['copy-js', browser.reload]);
    gulp.watch('images/**/*', ['copy-images', browser.reload]);
    gulp.watch('html/pages/**/*', ['compile-html']);
    gulp.watch(['html/{layouts,includes,helpers,data}/**/*'], ['compile-html:reset','compile-html']);
    gulp.watch(['./src/{layouts,partials,helpers,data}/**/*'], [panini.refresh]);
});

// Erases the dist folder
gulp.task('reset', function() {
    rimraf('bulma/*');
    rimraf('scss/*');
    rimraf('assets/css/*');
    rimraf('assets/fonts/*');
    rimraf('images/*');
});

// Erases the dist folder
gulp.task('clean', function() {
    rimraf('_site');
});

// Copy Bulma filed into Bulma development folder
gulp.task('setupBulma', function() {
    //Get Bulma from node modules
    gulp.src([nodepath + 'bulma/*.sass']).pipe(gulp.dest('bulma/'));
    gulp.src([nodepath + 'bulma/**/*.sass']).pipe(gulp.dest('bulma/'));
});

// Copy static assets
gulp.task('copy', function() {
    //Copy other external font and data assets
    gulp.src(['assets/fonts/**/*']).pipe(gulp.dest('_site/assets/fonts/'));
    gulp.src([nodepath + 'slick-carousel/slick/fonts/**/*']).pipe(gulp.dest('_site/assets/css/fonts/'));
    gulp.src([nodepath + 'slick-carousel/slick/ajax-loader.gif']).pipe(gulp.dest('_site/assets/css/'));
});

//Theme Sass variables
var sassOptions = {
    errLogToConsole: true,
    outputStyle: 'compressed',
    includePaths: [nodepath + 'bulma/sass']
};

//Theme Scss variables
var scssOptions = {
    errLogToConsole: true,
    outputStyle: 'compressed',
    includePaths: ['./scss/partials']
};

// Compile Bulma Sass
gulp.task('compile-sass', function () {
    var processors = [
        mq4HoverShim.postprocessorFor({ hoverSelectorPrefix: '.is-true-hover ' }),
        autoprefixer({
            browsers: [
                "Chrome >= 45",
                "Firefox ESR",
                "Edge >= 12",
                "Explorer >= 10",
                "iOS >= 9",
                "Safari >= 9",
                "Android >= 4.4",
                "Opera >= 30"
            ]
        })//,
        //cssnano(),
    ];
    //Watch me get Sassy
    return gulp.src('./bulma/bulma.sass')
        .pipe(sourcemaps.init())
        .pipe(sass(sassOptions).on('error', sass.logError))
        .pipe(postcss(processors))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./_site/assets/css/'));
});

// Compile Theme Scss
gulp.task('compile-scss', function () {
    var processors = [
        mq4HoverShim.postprocessorFor({ hoverSelectorPrefix: '.is-true-hover ' }),
        autoprefixer({
            browsers: [
                "Chrome >= 45",
                "Firefox ESR",
                "Edge >= 12",
                "Explorer >= 10",
                "iOS >= 9",
                "Safari >= 9",
                "Android >= 4.4",
                "Opera >= 30"
            ]
        })//,
        //cssnano(),
    ];
    //Watch me get Sassy
    return gulp.src('./scss/core.scss')
        .pipe(sourcemaps.init())
        .pipe(sass(sassOptions).on('error', sass.logError))
        .pipe(postcss(processors))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./_site/assets/css/'));
});

// Compile Html
gulp.task('compile-html', function() {
    gulp.src('html/pages/**/*.html')
        .pipe(panini({
        root: 'html/pages/',
        layouts: 'html/layouts/',
        partials: 'html/includes/',
        helpers: 'html/helpers/',
        data: 'html/data/'
    }))
        .pipe(gulp.dest('_site'))
        .on('finish', browser.reload);
});

gulp.task('compile-html:reset', function(done) {
    panini.refresh();
    done();
});

// Compile css from node modules
gulp.task('compile-css', function() {
    return gulp.src([ 
        nodepath + 'slick-carousel/slick/slick.css',
        nodepath + 'slick-carousel/slick/slick-theme.css',
        nodepath + 'wallop/css/wallop.css',
        //Additional static css assets
        assetspath + 'css/icons.min.css',
    ])
        .pipe(concat('app.css'))
        .pipe(gulp.dest('./_site/assets/css/'));
});

// Compile js from node modules
gulp.task('compile-js', function() {
    return gulp.src([ 
        nodepath + 'jquery/dist/jquery.min.js', 
        nodepath + 'slick-carousel/slick/slick.min.js', 
        nodepath + 'scrollreveal/dist/scrollreveal.min.js',
        nodepath + 'waypoints/lib/jquery.waypoints.min.js',
        nodepath + 'waypoints/lib/shortcuts/sticky.min.js',
        nodepath + 'jquery.counterup/jquery.counterup.min.js',
        nodepath + 'wallop/js/Wallop.min.js',
        //Additional static js assets
        assetspath + 'js/ggpopover/ggpopover.min.js',
        assetspath + 'js/ggpopover/ggtooltip.js',
        assetspath + 'js/embed/embed.js',
        assetspath + 'js/gmap/gmap.min.js',
    ])
        .pipe(concat('app.js'))
        .pipe(gulp.dest('./_site/assets/js/'));
});

//Copy Theme js to production site
gulp.task('copy-js', function() {
    gulp.src('js/**/*.js')
        .pipe(gulp.dest('./_site/assets/js/'));
});

//Copy images to production site
gulp.task('copy-images', function() {
    gulp.src('images/**/*')
        .pipe(gulp.dest('./_site/assets/images/'));
});

gulp.task('init', ['setupBulma']);
gulp.task('build', ['clean','copy', 'compile-js', 'compile-css', 'copy-js', 'compile-sass', 'compile-scss', 'compile-html', 'copy-images']);
gulp.task('default', ['server', 'watch']);

উত্তর:


166

গুলপ ৪.০ কাজটি নির্ধারণ করার উপায়টিকে পরিবর্তন করেছে যে টাস্কটি কার্যকর করতে অন্য কোনও কাজের উপর নির্ভর করে। তালিকার প্যারামিটার অবচয় করা হয়েছে।

আপনার gulpfile.js থেকে একটি উদাহরণ হতে পারে:

// Starts a BrowerSync instance
gulp.task('server', ['build'], function(){
  browser.init({server: './_site', port: port});
});

তালিকার পরামিতিগুলির পরিবর্তে তারা প্রবর্তন করেছে gulp.series()এবং gulp.parallel()

এই কাজটি এমন কিছুতে পরিবর্তন করা উচিত:

// Starts a BrowerSync instance
gulp.task('server', gulp.series('build', function(){
  browser.init({server: './_site', port: port});
}));

আমি এতে কোনও বিশেষজ্ঞ নই। সিরিজের কাজগুলি চালনার জন্য আপনি জাল ডকুমেন্টেশনে বা জে থম্পকিনস এবং স্টেফান বাউমগার্টনার দ্বারা নিম্নলিখিত দুর্দান্ত ব্লগ পোস্টগুলিতে আরও দৃ a় উদাহরণ দেখতে পাচ্ছেন

https://codeburst.io/switching-to-gulp-4-0-271ae63530c0

https://fettblog.eu/gulp-4-parallel-and-series/


4
এটি আমার ত্রুটিটি থেকে পরিবর্তন Task must be specifiedকরে Task never defined
2540625

@ 2540625 আমি আশা করি আপনি এই শেষ সাজানো পেয়েছিলাম কিন্তু আমি একই সমস্যা ছিল যতক্ষণ না আমি () / সমান্তরাল () কল সিরিজের সঙ্গে gulp.task সংজ্ঞা সরানো নিচে যেখানে নামে কর্ম সংজ্ঞায়িত করা হয়েছে। দেখে মনে হচ্ছে এটি কোনও ফাংশন সংজ্ঞায়িত করার আগে ব্যবহার করার চেষ্টা করার ক্লাসিক জাভাস্ক্রিপ্ট ত্রুটি।
জুন

51

Gulpfile.js এর আপনার শেষ লাইনটি প্রতিস্থাপনের চেষ্টা করুন

gulp.task('default', ['server', 'watch']);

সঙ্গে

gulp.task('default', gulp.series('server', 'watch'));

4
সংক্ষিপ্ত এবং দরকারী :)
এহসান

22

প্যাকেজ.জসন ফাইলটিতে আপনার গাল্প সংস্করণটি 3.9.1- এ নামিয়ে দিন

"gulp": "^3.9.1",

6
আপনি নোড ভি 10 এ থাকলে এটি করবেন না।
bbsimonbb

4
@bbsimonbb আপনি কি এই বিষয়ে বিস্তারিত বলতে পারেন, দয়া করে?
হেনরি

4
@ হেনরি সংস্করণ ৪ টি কীভাবে কাজগুলি চালিত হয় তা পরিবর্তিত হয়েছে, সুতরাং তার বর্তমান কোডটি কাজ করার জন্য তাকে জলপান ৩.৯.১ চালানো দরকার। তবে আরও ভাল উত্তরটি হল তার কোডটি
হালকা

14

গাল্প 4 থেকে আপনার গাল্পটি ডাউনগ্রেড করার দরকার নেই । একাধিক কার্য একত্রিত করতে gulp.series () ব্যবহার করুন। প্রথমে বিশ্বব্যাপী গল্পটি ইনস্টল করুন

npm install --global gulp-cli

এবং তারপরে আপনার ওয়ার্কিং ডিরেক্টরিতে স্থানীয়ভাবে ইনস্টল করুন

npm install --save-dev gulp

এখানে বিশদ দেখুন

উদাহরণ:

package.json

{
  "name": "gulp-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "browser-sync": "^2.26.3",
    "gulp": "^4.0.0",
    "gulp-sass": "^4.0.2"
  },
  "dependencies": {
    "bootstrap": "^4.3.1",
    "jquery": "^3.3.1",
    "popper.js": "^1.14.7"
  }
}

gulpfile.js

var gulp = require("gulp");
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();

// Specific Task
function js() {
    return gulp
    .src(['node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery/dist/jquery.min.js', 'node_modules/popper.js/dist/umd/popper.min.js'])
    .pipe(gulp.dest('src/js'))
    .pipe(browserSync.stream());
}
gulp.task(js);

// Specific Task
function gulpSass() {
    return gulp
    .src(['src/scss/*.scss'])
    .pipe(sass())
    .pipe(gulp.dest('src/css'))
    .pipe(browserSync.stream());
}
gulp.task(gulpSass);

// Run multiple tasks
gulp.task('start', gulp.series(js, gulpSass));

চালান gulp startএকাধিক কর্ম & রান আগুনে gulp jsবা gulp gulpSassনির্দিষ্ট কাজের জন্য।


4
এটি যথেষ্ট কাছাকাছি ছিল। সিনট্যাক্সটি সঠিকভাবে পেতে এবং রফতানি যোগ করতে গুল্প ওয়েবসাইটটি চেক করতে হয়েছিল।
লুক পুপলেট

10

https://fettblog.eu/gulp-4-parallel-and-series/

কারণ gulp.task(name, deps, func) প্রতিস্থাপন করা হয়েছিল gulp.task(name, gulp.{series|parallel}(deps, func))

আপনি গাল্প তবে পুরানো কোডটির সর্বশেষতম সংস্করণ ব্যবহার করছেন । কোডটি সংশোধন করুন বা ডাউনগ্রেড করুন।


6

গুলপ ব্যবহার করার সময় আমি একই ত্রুটি পেয়েছি। সমাধানটি স্থানীয় সংস্করণ এবং সিএলআই সংস্করণ উভয়ের জন্য গুলপ সংস্করণ 3.9.1 এ স্যুইচ করা।

sudo npm install -g gulp@3.9.1

প্রকল্পের ফোল্ডারে চালান

npm install gulp@3.9.1

3

ত্রুটিগুলি স্থির করার জন্য গুল্প ও এনপিএম সংস্করণগুলিকে পরিবর্তন করা ভাল নয়। আমার ওয়ার্কিং মেশিনটি পুনরায় ইনস্টল করার পরে আমি শেষ দিন বেশ কয়েকটি ব্যতিক্রম পাচ্ছিলাম। এবং এগুলি পুনরায় ইনস্টল করতে এবং ফিক্সিংয়ের জন্য কয়েক মিনিট অপচয় করে।

সুতরাং, আমি সর্বশেষ সংস্করণে সমস্ত আপগ্রেড করার সিদ্ধান্ত নিয়েছি:

npm -v : v12.13.0 
node -v : 6.13.0
gulp -v : CLI version: 2.2.0 Local version: 4.0.2

এটি আপনার মধ্যে গুলপ ফাইলে কোডিং করেছে তবে সংস্করণটি মিলছে না বলে এই ত্রুটিটি পাচ্ছে। সুতরাং, এখানে আপনাকে গুল্প ফাইলে 2 টি জিনিস পরিবর্তন করতে হবে গুলপ সংস্করণ 4-এর সাথে একত্রিত করার জন্য। গুল্প 4 পরিবর্তন করেছে যে কীভাবে সংস্করণ 3 এর চেয়ে টাস্কটি আরম্ভ করবে।

  1. সংস্করণ 4-এ, আপনাকে টাস্কটিকে একটি ফাংশন হিসাবে সংজ্ঞায়িত করতে হবে, তার আগে স্ট্রিং নাম দিয়ে গাল্প টাস্ক হিসাবে ডাকা উচিত। ভি 3 তে:

gulp.task ('পরিবেশন', ['sass'], ফাংশন () {..});

তবে ভি 4 এ এটির মতো হওয়া উচিত:

function serve() {
...
}
gulp.task('serve', gulp.series(sass));
  1. @ আর্থার যেমন উল্লেখ করেছে, আপনার কার্য কার্যে আর্গুমেন্টগুলি পাস করার পদ্ধতিটি পরিবর্তন করা দরকার। এটি ভি 3 তে এরকম ছিল:

gulp.task ('পরিবেশন', ['sass'], ফাংশন () {...});

তবে ভি 4-তে, এটি হওয়া উচিত:

gulp.task('serve', gulp.series(sass));

1

সমস্যাটি হ'ল আপনি গাল্প ৪ ব্যবহার করছেন এবং গিল্ফিল.জেএস এর বাক্য গঠনটি গুল্প ৩. সুতরাং আপনার গল্পটি নিম্নমানে ৩.xx xxx এ তৈরি করুন বা গল্প ৪ টি বাক্য গঠন ব্যবহার করুন।

সিনট্যাক্স গুল্প 3:

gulp.task('default', ['sass'], function() {....} );

সিনট্যাক্স গুল্প 4:

gulp.task('default', gulp.series(sass), function() {....} );

আপনি গাল্প এবং গল্প সংক্রান্ত কাজগুলি সম্পর্কে আরও পড়তে পারেন: https://medium.com/@sudoanushil/how-to-write-gulp-tasks-ce1b1b7a7e81


-4

পদক্ষেপ:

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