尝试用Gulp启动服务器时出错
我正在尝试运行服务器,我得到了这个断言错误。我已经卸载了node和NPM,并再次重新安装。我在这里尝试了许多步骤和建议的解决方案,但它不适合我的问题尝试用Gulp启动服务器时出错,gulp,gulp-4,Gulp,Gulp 4,我正在尝试运行服务器,我得到了这个断言错误。我已经卸载了node和NPM,并再次重新安装。我在这里尝试了许多步骤和建议的解决方案,但它不适合我的问题 AssertionError [ERR_ASSERTION]: Task never defined: node_modules/scss/bootstrap.scss at getFunction (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules
AssertionError [ERR_ASSERTION]: Task never defined: node_modules/scss/bootstrap.scss
at getFunction (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules\undertaker\lib\helpers\normalizeArgs.js:15:5)
at map (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules\arr-map\index.js:20:14)
at normalizeArgs (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules\undertaker\lib\helpers\normalizeArgs.js:22:10)
at Gulp.series (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules\undertaker\lib\series.js:13:14)
at C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\gulpfile.js:7:26
at sass (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules\undertaker\lib\set-task.js:13:15)
at bound (domain.js:422:14)
at runBound (domain.js:435:12)
at asyncRunner (C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node_modules\async-done\index.js:55:18)
at processTicksAndRejections (internal/process/task_queues.js:75:11)
这是我的密码
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
var sass = require('gulp-sass');
gulp.task('sass', async function () {
return gulp.src(gulp.series('node_modules/scss/bootstrap.scss', 'src/scss/*.scss'))
.pipe(sass())
.pipe(gulp.dest("src/css"))
.pipe(browserSync.stream());
});
gulp.task('js', async function () {
return gulp.src(gulp.series('node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery/dist/jquery.min.js', 'node_modules/popper.js/dist/popper.min.js'))
.pipe(gulp.dest('src/js'))
.pipe(browserSync.stream());
});
gulp.task('serve', async function () {
browserSync.init({
server: "./src",
});
gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'], 'sass');
gulp.watch("src/*.html").on('change', browserSync.reload);
})
gulp.task('default', gulp.series(gulp.parallel('sass', 'js', 'serve')));
错误来自
sass
和js
任务。您正在用gulp.series
包装您的源代码。所以Gulp试图将源代码作为任务运行
它们只需要像在watch任务中一样位于数组中
只要改变一下:
gulp.task('sass',异步函数(){
返回gulp.src(gulp.series('node_modules/scss/bootstrap.scss','src/scss/*.scss'))
致:
gulp.task('sass',异步函数(){
返回gulp.src(['node_modules/scss/bootstrap.scss','src/scss/*.scss'])
然后在js
任务中使用相同的格式
第二个错误(来自您的监视任务)是因为您需要将正在监视的任务打包为
系列
或并行
,即使只有一个任务,也要更改:
gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss','src/scss/*.scss'],'sass');
致:
gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss',src/scss/*.scss'],gulp.series('sass');
我确实喜欢你说的,它抛出了这个错误:监视node_modules/bootstrap/scss/bootstrap.scss,src/scss/*.scss:“监视任务”必须是一个函数(可以选择使用gulp.parallel或gulp.series生成)在Gulp.watch(C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node\u modules\Gulp\index.js:31:11)在C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\gulpfile.js:25:10服务器上,按照Sam所说的,我遇到了这个错误:在gulp.watch上监视node_modules/Bootstrap/scss/Bootstrap.scss,src/scss/*.scss:watch任务必须是一个函数(可以选择使用gulp.parallel或gulp.series生成)(C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\node\u modules\gulp\index.js:31:11)在C:\Users\Saviour\Desktop\Portfolio\Bootstrap\Project1\gulpfile.js:25:10的serveSecond crack of the whip-Hey Alaa,我已经为您更新了我的答案,基本上是因为错误是说您必须始终将任务打包为系列
或并行
,即使它只是一个任务!我实际上已经运行了更新版本的co最后,我在更正gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss',src/scss/*.scss'],gulp.series('sass'))后完成了工作;我在[Browsersync]中遇到的最后一件事是无法打开浏览器(如果您在无头环境中使用Browsersync,您可能希望将打开选项设置为false)对于这个问题,stackoverflow上已经有了一些答案。首先,我将把这个浏览器:'chrome'
添加到你的browserSync.init({
或者看看这个:或者这个:我已经尝试了这个或更多,但没有任何更改browserSync.init({port:3001,server:{baseDir:“./src”,open:true},watchTask:true,浏览器:“chrome.exe”,notify:false});