首页 > 解决方案 > 如何在没有“原始未定义”和“断言错误”错误的情况下吞下任务

问题描述

今天我试图在 Tomcat8 上的 Web 应用程序项目文件夹中吞下一个任务。我得到了一个网络应用程序的源代码,我正在尝试对其进行自定义。

我知道我要向您展示的错误有多种解释,但总是关于从 V3.9.1 切换到 V4.0.2 以及从 V4.0.2 切换到 V3.9.1 我的 gulp 版本。而且我在两者上都遇到了不同的问题:D

V3.9.1 吞咽:

C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master>gulp
fs.js:27
const { Math, Object } = primordials;
                         ^

ReferenceError: primordials is not defined
    at fs.js:27:26
    at req_ (C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master\node_modules\natives\index.js:143:24)
    at Object.req [as require] (C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master\node_modules\natives\index.js:55:10)
    at Object.<anonymous> (C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master\node_modules\vinyl-fs\node_modules\graceful-fs\fs.js:1:37)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)

C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master>gulp -v
CLI version: 2.2.0
Local version: 3.9.1

V4.0.2 吞咽

    AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master\node_modules\undertaker\lib\set-task.js:10:3)
    at Gulp.task (C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master\node_modules\undertaker\lib\task.js:13:8)
    at Object.<anonymous> (C:\Users\Administrator\Documents\Source code for Apache\pa-downtime-uApp-master\gulpfile.js:18:6)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at execute (C:\Users\Administrator\AppData\Roaming\npm\node_modules\gulp-cli\lib\versioned\^4.0.0\index.js:36:18) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}

任务脚本

我还想知道为什么在我的任务脚本中没有任务名称……我想在“gulp”之后尝试使用任务名称的命令。当我检查其他任务文件时,总是有一个任务名称:

'use strict';
const gulp = require('gulp'),
    war = require('gulp-war'),
    zip = require('gulp-zip'),`enter code here`
    path = require('path');
module.exports = function (gulp) {
    return function () {
        return gulp.src('dist/bundled/**')
            .pipe(war({
                welcome: 'index.html',
                displayName: 'downtime-app',
            }))
            .pipe(zip('downtime-app.war'))
            .pipe(gulp.dest('dist/'));
    };
};

对不起,如果我说任何错误,我是一个完全的初学者,甚至不知道 1 周前的 HTML 是什么...... :)

标签: gulptasktomcat8

解决方案


如果您使用的是 gulp 3 .. 和节点 12+ => 它会给出错误。

卸载它并使用节点11 .. 用吞咽 3 . .


推荐阅读