首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulpfile.js未能加载

Gulpfile.js未能加载
EN

Stack Overflow用户
提问于 2018-12-19 22:40:33
回答 3查看 9.1K关注 0票数 7

任务运行程序无法加载gulp文件。我现在使用的是VS2017 v15.9.4,但是这个项目是几年前开发的。

代码语言:javascript
复制
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)

我将我的项目本地地址改为“.”

代码语言:javascript
复制
npm -v --> 6.4.1

node -v --> 10.14.2

gulp -v --> CLI version 2.0.1
            Local version 4.0.0

package.json文件的内容:

代码语言:javascript
复制
{
  "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的含量

代码语言:javascript
复制
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']);

我谷歌它和现有的解决方案不能解决问题。有一些相关的问题,但对我不起作用。

我怎样才能解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-09 09:07:33

我已经试过你的设置了,它确实造成了一个像你的错误。我去了吞咽医生,并尝试了他们的版本的吞咽文件,它的工作没有任何问题。因此,我重写了您的吞咽文件,以配合他们的例子,而且效果很好。下面是代码:

代码语言:javascript
复制
    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并有了一个适当的输出

代码语言:javascript
复制
clean
default

顺便说一下,看看npx,这样您就不必在全球范围内安装gulp了。

希望这能帮上忙!

票数 5
EN

Stack Overflow用户

发布于 2019-01-09 06:31:36

在gulp4中不再允许这种语法:

代码语言:javascript
复制
gulp.task('default', ['durandal']);

用途:

代码语言:javascript
复制
gulp.task('default', gulp.series('durandal'));

同样,改为:

代码语言:javascript
复制
gulp.task('durandal', gulp.series('clean', function (done) {
    durandal({
        baseDir: 'app',
        main: 'main.js',
        output: 'main-built.js',
        almond: true,
        minify: true
    })
    .pipe(gulp.dest('app'));
    done();
});

此外,使用泵,泵可能会给您提供比没有它更好的错误报告。

票数 4
EN

Stack Overflow用户

发布于 2019-01-08 19:03:56

尝试使用这个解决方法:https://github.com/ampproject/docs/issues/793将gulp降级到这个版本3.9.1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53860173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档