قراره بهتون تضمین موفقیت در برنامه‌نویسی و کلی آفر ویژه بدیم 😎 (برای شروع کلیک کن 👉)
۰ ثانیه
۰ دقیقه
۰ ساعت
۷ milad karimi
عمل نکردن دستور imagemin
جامعه Html & CSS ایجاد شده در ۲۵ بهمن ۱۴۰۱

با سلام من ارور میگیرم از دستور GULP imagemin بدین شکل :

PS D:\\gulpproject> gulp minifyimages
D:\\gulpproject\\gulpfile.js:3
import imagemin from 'gulp-imagemin';
^^^^^^
SyntaxError: Cannot use import statement outside a module
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1149:20)
    at Module._compile (node:internal/modules/cjs/loader:1190:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
    at Module.load (node:internal/modules/cjs/loader:1089:32)
    at Module._load (node:internal/modules/cjs/loader:930:12)
    at Module.require (node:internal/modules/cjs/loader:1113:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at requireOrImport (C:\\Users\\Milad-karimi\\AppData\\Roaming\\npm\\node_modules\\gulp\\node_modules\\gulp-cli\\lib\\shared\\require-or-import.js:19:11)
    at execute (C:\\Users\\Milad-karimi\\AppData\\Roaming\\npm\\node_modules\\gulp\\node_modules\\gulp-cli\\lib\\versioned\\^4.0.0\\index.js:37:3)

درود

این تاپیک مشکل شما رو بررسی کرده.

نازنین کریمی مقدم ۲۵ بهمن ۱۴۰۱، ۱۸:۰۷

با سلام من کارهای مربوطه رو انجام دادم و پکیج babel رو هم نصب کردم و فایل مربوط به اون رو هم ایجاد کردم و اون تکه کد مربوطه رو هم داخلش گذاشتم و بعدش type:module رو هم داخل فایل جی سون گذاشتم اما باز هم ارور میگیرم و در ابتدا هم پکیج مربوطه رو هم با استفاده از import شناسوندم

PS D:\\gulpproject> gulp compressjs
ReferenceError: require is not defined in ES module scope, you can use import instead   
This file is being treated as an ES module because it has a '.js' file extension and 'D:\\gulpproject\\package.json' contains "type": "module". To treat it as a CommonJS script, 
rename it to use the '.cjs' file extension.
    at file:///D:/gulpproject/gulpfile.js:1:14
    at ModuleJob.run (node:internal/modules/esm/module_job:194:25)
milad karimi ۲۶ بهمن ۱۴۰۱، ۰۸:۵۱

امکانش هست کل پروژه رو به صورت زیپ بفرستید؟ بنده بررسی کنم ببینم برای منم خطا میده یا نه و بتونم بهتر کمک تون کنم :)

نازنین کریمی مقدم ۲۶ بهمن ۱۴۰۱، ۱۹:۲۳

بله کل پروژه ام رو اینجا آپلود کردم

https://uupload.ir/view/gulpproject_fgn4.zip/

milad karimi ۲۶ بهمن ۱۴۰۱، ۲۰:۰۷

سلام،

require از commonjs استفاده میکنه که شما یک خط از require و خط بعدی از import استفاده کردید.

الان که type:module قرار دادید پس از import استفاده کنید.

compressjs رو هم اضافه کردم:

import gulp from 'gulp';
import uglify from 'gulp-uglify';
import imagemin from 'gulp-imagemin';
// the first task in gulp 
gulp.task('alarm' ,async function(){
    return console.log('this is the first task in gulp technology');
})
// the movement of html file in src to dist
gulp.task('movement' , async function(){
    gulp.src('src/*.html')
    .pipe(gulp.dest('dist'));
})
// the minify images in project
gulp.task('minifyimagesinproject' ,async function(){
    gulp.src('src/assets/img/*')
    .pipe(imagemin())
    .pipe(gulp.dest('src/assets/img'));
})
// compressjs
gulp.task('compressjs', function () {
  return gulp.src('src/assets/js/*.js')
    .pipe(uglify())
    .pipe(gulp.dest('dist'));
});
محسن موحد ۲۷ بهمن ۱۴۰۱، ۱۶:۲۴

ببخشید میشه توضیح بدید که هرکدام از این ماژول‌ها چه کاری رو انجام میدهند و اینکه ماهیت آن‌ها چیه؟؟

type : module

compress.js

milad karimi ۲۸ بهمن ۱۴۰۱، ۰۷:۳۹

type:module از مدل ایمپورت ES6 استفاده میکند و commonjs در node.js اضافه شده و از require استفاده میکنه.

بهترین پاسخ
محسن موحد ۲۹ بهمن ۱۴۰۱، ۰۵:۴۰