دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ مهرشاد شیرازی
درست کار نکردن imagemin
محسن موحد حل شده توسط محسن موحد

سلام دوستان 

ببخشید من در اجرا imagemin به مشکل بر خوردم 

طبق گفته‌های شما در تاپیک‌های مشابه تا جایی تونستم به نتیجه برسم ولی باز هم با این ارور مواجه میشم 

PS D:\project\gulp js\gulpApp> gulp minifyimg
[18:00:42] Using gulpfile D:\project\gulp js\gulpApp\gulpfile.js
[18:00:42] Starting 'minifyimg'...
[18:00:42] 'minifyimg' errored after 12 ms
[18:00:42] TypeError: imagemin is not a function
    at D:\project\gulp js\gulpApp\gulpfile.js:20:9
    at taskWrapper (D:\project\gulp js\gulpApp\node_modules\undertaker\lib\set-task.js:13:15)
    at bound (domain.js:402:14)
    at runBound (domain.js:415:12)
    at asyncRunner (D:\project\gulp js\gulpApp\node_modules\async-done\index.js:52:18)
    at process._tickCallback (internal/process/next_tick.js:61:11)

و کد‌های من هم به صورت زیر هست :

const gulp = require('gulp');
const imagemin = import('gulp-imagemin');
// gulp.task - define tasks
// gulp.src -point to file to use 
// gulp.dest - point to folder to output 
// gulp.watch - watch files and folder for changes
// print msg
gulp.task('msg',async function(){
 return console.log('this is my first task with gulp!!!!')
});
 /// copy html files to dist folder 
 gulp.task('copyhtml' , async function(){
    gulp.src('src/*.html')
    .pipe(gulp.dest('dist'));
 });
 // minify images
gulp.task('minifyimg',async function(){
	gulp.src('src/assets/img/*')
		.pipe(imagemin())
		.pipe(gulp.dest('dist/asstes/img'))
});

ممنون میشم راهنماییم کنین 

سلام،

بجای import از require استفاده کنید:

const imagemin = require('gulp-imagemin');
محسن موحد ۱۴ دی ۱۴۰۳، ۲۲:۳۶

از require استفاده کردم ولی کلا کار نمیکرد

مهرشاد شیرازی ۱۵ دی ۱۴۰۳، ۰۵:۴۱

نسخه جدید imagemin از ESM Module پشتیبانی میکنه.

کد رو به شکل زیر تغییر بده:

import gulp from 'gulp';
import imagemin from 'gulp-imagemin';
// Print message
gulp.task('msg', async function () {
    console.log('this is my first task with gulp!!!!');
});
// Copy HTML files to dist folder
gulp.task('copyhtml', async function () {
    return gulp.src('src/*.html')
        .pipe(gulp.dest('dist'));
});
// Minify images
gulp.task('minifyimg', async function () {
    return gulp.src('src/assets/img/*')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/assets/img'));
});
export default gulp.series('msg', 'copyhtml', 'minifyimg');

همچنین فایل package.json رو باز کن و بخش زیرو بهش اضافه کن:

"type": "module",
بهترین پاسخ
محسن موحد ۱۵ دی ۱۴۰۳، ۰۸:۰۴

انجام دادم  و با این ارور مواجه شدم دوباره 

PS D:\project\gulp js\gulpApp> gulp minifyimg
[13:44:52] Using gulpfile D:\project\gulp js\gulpApp\gulpfile.js
[13:44:52] Starting 'minifyimg'...
[13:44:52] 'minifyimg' errored after 9.47 ms
[13:44:52] TypeError: pipeTo.on is not a function
    at ReadableState.pipe (D:\project\gulp js\gulpApp\node_modules\streamx\index.js:277:14)
    at Transform.pipe (D:\project\gulp js\gulpApp\node_modules\streamx\index.js:728:25)
    at file:///D:/project/gulp%20js/gulpApp/gulpfile.js:16:10
    at taskWrapper (D:\project\gulp js\gulpApp\node_modules\undertaker\lib\set-task.js:13:15)
    at bound (node:domain:433:15)
    at runBound (node:domain:444:12)
    at asyncRunner (D:\project\gulp js\gulpApp\node_modules\async-done\index.js:52:18)
    at process.processTicksAndRejections (node:internal/process/task_queues:85:11)

این چیزی که من متوجه شدم به قسمت 

.pipe(imagemin())

داره اشاره میکنه 

و اینکه کالا کل فایل‌ها رو پاک کردم دوباره نصب کردم باز هم درست نشد 

مهرشاد شیرازی ۱۷ دی ۱۴۰۳، ۱۰:۱۹

این ارور رو رفع کردم 

 

مهرشاد شیرازی ۱۷ دی ۱۴۰۳، ۱۶:۴۲