【发布时间】:2019-05-20 11:21:30
【问题描述】:
Visual Studio 任务运行程序无法加载 gulp 文件。我现在用的是VS2017 v15.9.4,但是这个项目是几年前开发的。
Failed to run "...\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
assert.js:350
throw err;
^
AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (...\node_modules\undertaker\lib\set-task.js:10:3)
at Gulp.task (...\node_modules\undertaker\lib\task.js:13:8)
at Object.<anonymous> (...\gulpfile.js:34:6)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
我用“...”替换了我的项目本地地址
npm -v --> 6.4.1
node -v --> 10.14.2
gulp -v --> CLI version 2.0.1
Local version 4.0.0
package.json文件的内容:
{
"version": "1.0.0",
"name": "tratic",
"private": true,
"devDependencies": {
"gulp": "github:gulpjs/gulp#4.0",
"gulp-clean-css": "3.5.0",
"gulp-concat": "2.6.1",
"gulp-durandal": "1.1.7",
"gulp-install": "^1.1.0",
"gulp-uglify": "3.0.0",
"gulp-util": "3.0.8",
"rimraf": "2.6.1"
},
"dependencies": {
"assert": "^1.4.1",
"assert-js": "^0.20.0",
"natives": "^1.1.5"
},
"scripts": {
"gulp": "./node_modules/gulp/bin/gulp.js"
}
}
gulpfile.js的内容:
var gulp = require('gulp'),
durandal = require('gulp-durandal'),
rimraf = require('rimraf');
gulp.task('clean', function (cb) {
rimraf('app/main-built.js', cb);
});
gulp.task('durandal', ['clean'], function () {
durandal({
baseDir: 'app',
main: 'main.js',
output: 'main-built.js',
almond: true,
minify: true
})
.pipe(gulp.dest('app'));
});
gulp.task('default', ['durandal']);
我用谷歌搜索,现有的解决方案无法解决问题。有一些相关的问题,但对我不起作用。
我该如何解决这个问题?
【问题讨论】:
-
如果您找到了解决方案,您可以将其写为答案,而不是将其作为编辑添加到其他答案中
-
那么你的初始代码出了什么问题?
-
@Mark 我使用 gulp 4 和 gulp 3 语法。然而,我解决了 durandal 函数中的另一个问题并编辑了下面的答案。
-
是的,您的错误::必须指定任务函数”已通过我下面的解释解决。您的代码尚未解决 durandel 问题。
-
谢谢@Mark,您的回答帮助了我。首先,我从您的答案中发现语法错误。你能解释一下是什么问题吗?为什么代码没有解决 durandal 问题?
标签: javascript node.js npm gulp durandal