如何用自定义参数替换字符串参数?
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
。
重新阅读您的问题,看起来它可能只是您没有看到的代码中的拼写错误。盯着看半天就好了!
我是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
。
重新阅读您的问题,看起来它可能只是您没有看到的代码中的拼写错误。盯着看半天就好了!