在 vs 代码中打开项目时未检测到 Gulp 任务
Posted
技术标签:
【中文标题】在 vs 代码中打开项目时未检测到 Gulp 任务【英文标题】:Gulp task not being detected when open the project in vs code 【发布时间】:2020-03-01 16:56:27 【问题描述】:我使用 gulp 任务来缩小 css 和 js 文件,但每次打开 gulp 时都会出现此错误。我搜索了任何解决方案,但仍然没有找出问题所在。
Gulp 任务:命令失败:gulp --tasks-simple --cwd "c:\wamp64\www\gulp_p" --gulpfile "c:\wamp64\www\gulp_p\gulpfile.js" assert.js:374 抛出错误; ^ AssertionError [ERR_ASSERTION]:任务 必须指定函数 在 Gulp.set [as _setTask] (c:\wamp64\www\gulp_p\node_modules\undertaker\lib\set-task.js:10:3) 在 Gulp.task (c:\wamp64\www\gulp_p\node_modules\undertaker\lib\task.js:13:8) 在对象。 (c:\wamp64\www\gulp_p\gulpfile.js:64:6) 在 Module._compile (internal/modules/cjs/loader.js:956:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10) 在 Module.load (internal/modules/cjs/loader.js:812:32) 在 Function.Module._load (internal/modules/cjs/loader.js:724:14) 在 Module.require (internal/modules/cjs/loader.js:849:19) 在需要(内部/模块/cjs/helpers.js:74:18) 在执行时(C:\Users\alia\AppData\Roaming\npm\node_modules\gulp-cli\lib\versioned\^4.0.0\index.js:36:18) 生成消息:假, 代码:'ERR_ASSERTION', 实际:错误, 预期:真实, 运算符:'=='
我的安装
gulp --version => CLI version: 2.2.0 - Local version: 4.0.2
node --version => v12.13.0
npm --version => 6.12.0
npx --version => 6.12.0
package.json
"name": "gulp_p",
"version": "1.0.0",
"main": "gulpfile.js",
"dependencies":
"gulp": "^4.0.2",
"gulp-clean": "^0.4.0",
"gulp-clean-css": "^3.10.0",
"gulp-concat": "^2.6.1",
"gulp-concat-css": "^3.1.0",
"gulp-inject": "^4.3.2",
"gulp-install": "^1.1.0",
"gulp-minify": "^3.1.0",
"gulp-minify-css": "^1.2.4",
"gulp-prompt": "^1.1.0",
"gulp-requirejs": "^1.2.0",
"gulp-watch": "^5.0.1"
,
"devDependencies": ,
"scripts":
"test": "echo \"Error: no test specified\" && exit 1"
,
"author": "",
"license": "ISC",
"description": ""
gulpfiles.js 正在工作,因为我在不同的计算机上使用它。所以 gulpfile.js 没有错误,它位于项目的根目录
'use strict';
var gulp = require('gulp');
var prompt = require('gulp-prompt');
var log = require('fancy-log');
var concatCss = require('gulp-concat-css');
var minifyCSS = require('gulp-minify-css');
var cleanCSS = require('gulp-clean-css');
var concat = require('gulp-concat');
var minify = require('gulp-minify');
var clean = require('gulp-clean');
var watch = require('gulp-watch');
var theme_input='sunstar';
gulp.task('css', function()
var importFrom = require('gulp/themes/'+theme_input+'.js');
return gulp.src(importFrom.css_arr,base: '.')
.pipe(concatCss(importFrom.destination_css))
.pipe(minifyCSS(keepSpecialComments: 0))
.pipe(gulp.dest('.'));
);
gulp.task('scripts', function()
var importFrom = require('gulp/themes/'+theme_input+'.js');
return gulp.src(importFrom.js_arr)
.pipe(concat(importFrom.destination_js))
.pipe(minify(keepSpecialComments: 0))
.pipe(gulp.dest('.'));
);
gulp.task('choose', function()
log('Please enter THEME name, then type of task [js/css].');
return gulp.src('*')
.pipe(prompt.prompt([
type: 'input',
name: 'theme_input',
message: 'Please enter THEME name?'
,
type: 'input',
name: 'task',
message: 'Please enter task Type?'
], function(res)
theme_input = res.theme_input;
var importFrom = require('gulp/themes/'+theme_input+'.js');
if(res.task == 'css')
gulp.src(importFrom.css_arr,base: '.')
.pipe(concatCss(importFrom.destination_css))
.pipe(minifyCSS(keepSpecialComments: 0))
.pipe(gulp.dest('.'));
else if(res.task == 'js')
gulp.src(importFrom.js_arr)
.pipe(concat(importFrom.destination_js))
.pipe(minify(keepSpecialComments: 0))
.pipe(gulp.dest('.'));
));
);
gulp.task('default',['choose','css','scripts']);
【问题讨论】:
尽管如此,因为这是一个常见的 gulpfile.js 错误,如果您需要帮助,您应该包含您的 gulpfile。 @Mark 当然,因为我仍然坚持这个错误 【参考方案1】:由于您使用的是 gulp v4,因此此代码将不起作用:
gulp.task('default',['choose','css','scripts']);
将其更改为:
gulp.task('default',gulp.series('choose','css','scripts'));
运行此功能的另一台计算机必须使用 gulp v3。
【讨论】:
以上是关于在 vs 代码中打开项目时未检测到 Gulp 任务的主要内容,如果未能解决你的问题,请参考以下文章
Gulp 4:如何检测复杂构建脚本中的“您是否忘记发出异步完成信号?”错误