Gulpfile.js 加载失败

2024-04-06

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

内容为包.json file:

{
  "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']);

我google了一下,现有的解决方案无法解决问题。有一些相关的问题,但对我不起作用。

我该如何解决这个问题?


我已经尝试过你的设置,它确实引发了像你这样的错误。 我去了吞下文档 https://github.com/gulpjs/gulp/tree/v4.0.0并尝试了他们的 gulpfile 版本,并且没有任何问题。所以我重写了你的 gulpfile 以匹配他们的示例,并且效果很好。

这是代码:

var gulp = require('gulp'),
    durandal = require('gulp-durandal'),
    rimraf = require('rimraf');

var paths = {
    app: "./App/**/*.js",
    js: "./Scripts/**/*.js",
    css: "./Content/**/*.css",
    concatJsDest: "./Scripts/vendor-scripts.min.js",
    concatCssDest: "./Content/vendor-css.min.css"
};

function clean (cb) {
    rimraf('app/main-built.js', cb);
}

gulp.task('clean', clean);

function runDurandal () {
    return durandal({
        baseDir: 'app',
        main: 'main.js',
        output: 'main-built.js',
        almond: true,
        minify: true,
        rjsConfigAdapter: function (rjsConfig) {
            rjsConfig.deps = ['text'];
            return rjsConfig;
        }
    })
    .pipe(gulp.dest('app'));
}

var build = gulp.series(clean, runDurandal);

gulp.task('default', build);

基本上,我已将用作任务的函数移至变量,并使用系列来运行 durandal。

然后我尝试过npx gulp --tasks-simple并有适当的输出

clean
default

顺便说一句,看看npx https://www.npmjs.com/package/npx所以你不必全局安装 gulp。

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gulpfile.js 加载失败 的相关文章

随机推荐