@partikond

Настраивал Gulp 5 по видео жеки как решить, ошибка выглядит так TypeError [ERR_INVALID_ARG_TYPE]: The «path» argument must be of type string or an i?

import fs from "fs";

import fonter from "gulp-fonter-fix";
import ttf2woff2 from "gulp-ttf2woff2";



export const otfTOTtf = () => {
// Ищем файлы шрифтов .otf
    return app.gulp.src(`${app.path.srcFolder}/fonts/*.otf`,{})
    .pipe(app.plugins.plumber(
        app.plugins.notify.onError({
            title: "FONTS",
            message:'Error : <%= error.message %>'
        })
    ))
    //Конвертируем в .ttf
        .pipe(fonter({
        formats:['ttf']
        }))
    //Выгружаем в исходную папку
        .pipe(app.gulp.dest(`${app.path.srcFolder}/fonts/`))
}

export const ttfToWoff = () => {
    // Ищем файлы шрифтов .ttf
    return app.gulp.src(`${app.path.srcFolder}/fonts/*.woff`)
    .pipe(app.plugins.plumber(
        app.plugins.notify.onError({
            title: "FONTS",
            message:'Error : <%= error.message %>'
        })
    ))
    //Конвертируем в .woff
        .pipe(fonter({
        formats:['woff']
        }))
        //Выгружаем в папку с результатом
        .pipe(app.gulp.dest(`${app.path.build.fonts}`))
        //Ищем файлы шрифтов .ttf
        .pipe(app.gulp.src(`${app.path.srcFolder}/fonts/*.ttf`)) 
        //Конвертируем в .woff2
        .pipe(ttf2woff2())
        //Выгружаем в папку с результатом    
        .pipe(app.gulp.dest(`${app.path.build.fonts}`))    
}

export const fontsStyle = () => {
    //Файл стилей подключения шрифтов
    let fontsFile = `${app.path.srcFolder}/scss/fonts.scss`;
    //Проверяем существуют ли файлы шрифтов
    fs.readdir(app.path.build.fonts, function (_err, fontsFile) {
        if (fontsFile) {
            //Проверяем существует ли файл стилей для подключения шрифтов
            if (!fs.existsSync(fontsFile)) {
                //Если файла нет, создаем его
               app.gulp.src(`${app.path.srcFolder}/fonts/*.otf`, { read: false })
                let newFileOnly;
                for (var i = 0; i < fontsFile.length; i++) {
                    //Записываем подключения шрифтов в файл стилей
                    let fontFileName = fontsFile[i].split('-')[0];
                    if (newFileOnly !== fontFileName) {
                        let fontName = fontFileName.split('-')[0] ? fontFileName.split('-')[0] : fontFileName;
                        let fontWeight = fontFileName.split('-')[1] ? fontFileName.split('-')[1] : fontFileName;
                        if (fontWeight.toLowerCase() === 'thin') {
                            fontWeight = 100;
                        } else if (fontWeight.toLowerCase() === 'extralight') {
                            fontWeight = 200;
                        } else if (fontWeight.toLowerCase() === 'light') {
                            fontWeight = 300;
                        } else if (fontWeight.toLowerCase() === 'medium') {
                            fontWeight = 500;
                        } else if (fontWeight.toLowerCase() === 'semibold') {
                            fontWeight = 600;
                        } else if (fontWeight.toLowerCase() === 'bold') {
                            fontWeight = 700;
                        } else if (fontWeight.toLowerCase() === 'extrabold') {
                            fontWeight = 800;
                        } else if (fontWeight.toLowerCase() === 'black') {
                            fontWeight = 900;
                        } else {
                            fontWeight = 400;
                        }   
                        fs.appendFile(fontsFile,`@font-face{\n\tfont-family:${fontName};\n\tfont-display:swap;\n\tsrc:url("../fonts/${fontFileName}.woff2")format("woff2"),url("../fonts/${fontFileName}.woff")format("woff");\n\tfont-weight:${fontWeight};\n\tfont-style:normal;\n}\r\n`,cb);
                        newFileOnly = fontFileName;
                    }
                }
            }else {
                //Если файл есть, выводим сообщение 
                console.log("Файл sccs/fonts.scss уже существует. Для обновления его нужно его удалить");

        } 
        }
    });
    return app.gulp.src(`${app.path.srcFolder}`);
    function cb() {
        
    } 
      
}


вот действия терминала:
$ npm run dev

> for_front@1.0.0 dev
> gulp

`import sass from 'sass'` is deprecated.
Please use `import * as sass from 'sass'` instead.
[16:53:24] Using gulpfile D:\for_front\gulpfile.js
[16:53:24] Starting 'default'...
[16:53:24] Starting 'clear'...
[16:53:24] Finished 'clear' after 77 ms
[16:53:24] Starting 'otfTOTtf'...
[16:53:24] Finished 'otfTOTtf' after 25 ms
[16:53:24] Starting 'ttfToWoff'...
Parsing of the input font failed.
Parsing of the input font failed.
Parsing of the input font failed.
Parsing of the input font failed.
Parsing of the input font failed.
[16:53:24] Finished 'ttfToWoff' after 174 ms
[16:53:24] Starting 'fontsStyle'...
[16:53:24] 'fontsStyle' errored after 6.4 ms
[16:53:24] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received an instance of Array
    at Object.open (node:fs:533:10)
    at Object.writeFile (node:fs:2301:6)
    at Object.appendFile (node:fs:2402:6)
    at file:///D:/for_front/gulp/tasks/fonts.js:88:32
    at FSReqCallback.oncomplete (node:fs:187:23)
    at FSReqCallback.callbackTrampoline (node:internal/async_hooks:130:17)
[16:53:24] 'default' errored after 296 ms
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 1
inkShio
@inkShio
1.
return app.gulp.src(`${app.path.srcFolder}/fonts/*.otf`, { encoding: false })

2.
return app.gulp.src(`${app.path.srcFolder}/fonts/*.woff`, { encoding: false })

3. Пишет "Аргумент «path» должен быть типа string", проверь пути.

Можешь ориентироваться по этому файлу, он рабочий.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы