Как я могу заменить строковый параметр пользовательским параметром? - PullRequest
1 голос
/ 04 марта 2020

Я новичок в gulp, это код:

const gulp = require('gulp');

let tasks = [
    ['html'],
    ['src/*.html']
];


gulp.task('html', async () => {
    gulp.src('src/*.html')
        .pipe(gulp.dest('dist'));
})


let currentSrc = tasks[1, 0]
let currentTask = tasks[0, 0]
gulp.task('watch', async () => {

    // no error but doesn't work:
    gulp.watch(currentSrc.toString(), gulp.series('html'));
    // this works instead:
    // gulp.watch('src/*.html', gulp.series('html'));

})

Я хотел сделать параметры более читабельными, но не могу заменить их. Строки идентичны, обе являются typeof String, а также tasks[1][0] === 'src/*.html'

Почему они не взаимозаменяемы, если они идентичны?

Когда я использую gulp watch в терминале, это не так дай мне ошибку, но она тоже не работает. Я проверил все остальное, и проблема по какой-то причине составляет 100% tasks[1][0] !== 'src/*.html'. У меня осталось всего несколько волос: (

Решено: Мой последний фрагмент

const gulp = require('gulp');

const tasks = [
    ['html'],
    ['src/*.html']
];

gulp.task('html', async () => {
    gulp.src('src/*.html')
        .pipe(gulp.dest('dist'));
})

let currentSrc = tasks[1][0].toString();
let currentTask = gulp.series(tasks[0][0])
gulp.task('watch', async () => {

    gulp.watch(currentSrc, currentTask);

})

1 Ответ

0 голосов
/ 04 марта 2020

В вашем коде tasks[1, 0]. Это должно быть tasks[1][0].

let tasks = [
    ['html', 'imagemin', 'minify'],
    ['src/*.html', 'src/images/*', 'src/javascript/*']
];

console.log(tasks[1, 0])

Вы не сделали базовую проверку c, чтобы подтвердить свое предположение. Запустите этот фрагмент, который взят из вашего кода в вопросе.

Затем запустите этот:

    const tasks = [
        ['html', 'imagemin', 'minify'],
        ['src/*.html', 'src/images/*', 'src/javascript/*']
    ];

    console.log(tasks[1][0])

Вы бы нашли это, если бы просто сократили его до минимального воспроизводимого примера. В 80% случаев вы обнаружите проблему, когда будете делать это.

Кроме того, используйте const.

Перечитав свой вопрос, похоже, это возможно, в вашем коде была опечатка, которую вы не видели. Если вы смотрите на это полдня, это произойдет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...