如何用自定义参数替换字符串参数?

How can I replace a string parameter with a custom parameter?

我是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);

})

您的代码中有 tasks[1, 0]。必须是 tasks[1][0].

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

console.log(tasks[1, 0])

您没有进行基本检查来验证您的假设。 运行 该片段,来自您在问题中的代码。

然后运行这个:

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

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

如果您只是将其简化为最小可重现示例,您就会发现它。当您这样做时,80% 的时间您会发现问题。

此外,use const

重新阅读您的问题,看起来它可能只是您没有看到的代码中的拼写错误。盯着看半天就好了!