2017-04-06 73 views
0

我正在JHipster生成的項目上工作,我在運行gulp時遇到了問題。gulp test:插件'gulp-tslint-log'中的錯誤

我安裝了故宮所有node_modules安裝,這是我的package.json和gulpfile.js:

{ 
    "name": "myapp", 
    "version": "0.0.0", 
    "description": "Description for myapp", 
    "private": true, 
    "cacheDirectories": [ 
    "node_modules", 
    "src/main/webapp/bower_components" 
    ], 
    "devDependencies": { 
    "browser-sync": "2.11.2", 
    "del": "2.2.0", 
    "eslint-config-angular": "0.5.0", 
    "eslint-plugin-angular": "1.0.0", 
    "event-stream": "3.3.2", 
    "generator-jhipster": "3.1.0", 
    "gulp": "3.9.1", 
    "gulp-angular-filesort": "1.1.1", 
    "gulp-angular-templatecache": "1.8.0", 
    "gulp-autoprefixer": "3.1.0", 
    "gulp-changed": "1.3.0", 
    "gulp-cssnano": "2.1.1", 
    "gulp-eslint": "2.0.0", 
    "gulp-flatten": "0.2.0", 
    "gulp-footer": "1.0.5", 
    "gulp-htmlmin": "1.3.0", 
    "gulp-if": "2.0.0", 
    "gulp-imagemin": "2.4.0", 
    "gulp-inject": "3.0.0", 
    "gulp-ng-annotate": "2.0.0", 
    "gulp-ng-constant-fork": "0.4.1", 
    "gulp-notify": "2.2.0", 
    "gulp-plumber": "1.1.0", 
    "gulp-rev": "7.0.0", 
    "gulp-rev-replace": "0.4.3", 
    "gulp-sourcemaps": "1.6.0", 
    "gulp-uglify": "1.5.3", 
    "gulp-useref": "3.0.7", 
    "jasmine-core": "2.4.1", 
    "karma": "0.13.22", 
    "karma-chrome-launcher": "0.2.3", 
    "karma-coverage": "0.5.5", 
    "karma-jasmine": "0.3.8", 
    "karma-jenkins-reporter": "0.0.2", 
    "karma-phantomjs-launcher": "1.0.0", 
    "karma-script-launcher": "0.2.0", 
    "lazypipe": "1.0.1", 
    "lodash": "4.6.1", 
    "map-stream": "0.0.6", 
    "phantomjs-prebuilt": "2.1.7", 
    "proxy-middleware": "0.15.0", 
    "run-sequence": "1.1.5", 
    "wiredep": "4.0.0", 
    "xml2js": "0.4.16", 
    "yargs": "4.3.2" 
    }, 
    "engines": { 
    "node": "^4.3" 
    }, 
    "scripts": { 
    "test": "gulp test" 
    }, 
    "dependencies": { 
    "file-saver": "^1.3.2" 
    } 
} 

的package.json文件

'use strict'; 

var gulp = require('gulp'), 
    rev = require('gulp-rev'), 
    templateCache = require('gulp-angular-templatecache'), 
    htmlmin = require('gulp-htmlmin'), 
    imagemin = require('gulp-imagemin'), 
    ngConstant = require('gulp-ng-constant-fork'), 
    eslint = require('gulp-eslint'), 
    es = require('event-stream'), 
    flatten = require('gulp-flatten'), 
    del = require('del'), 
    wiredep = require('wiredep').stream, 
    runSequence = require('run-sequence'), 
    browserSync = require('browser-sync'), 
    KarmaServer = require('karma').Server, 
    plumber = require('gulp-plumber'), 
    changed = require('gulp-changed'), 
    gulpIf = require('gulp-if'), 
    inject = require('gulp-inject'), 
    angularFilesort = require('gulp-angular-filesort'); 

var handleErrors = require('./gulp/handleErrors'), 
    serve = require('./gulp/serve'), 
    util = require('./gulp/utils'), 
    build = require('./gulp/build'); 

var yorc = require('./.yo-rc.json')['generator-jhipster']; 

var config = require('./gulp/config'); 

gulp.task('clean', function() { 
    return del([config.dist], { dot: true }); 
}); 

gulp.task('copy', function() { 
    return es.merge( 
     gulp.src(config.app + 'i18n/**') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(changed(config.dist + 'i18n/')) 
     .pipe(gulp.dest(config.dist + 'i18n/')), 
     gulp.src(config.bower + 'bootstrap/fonts/*.*') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(changed(config.dist + 'content/fonts/')) 
     .pipe(rev()) 
     .pipe(gulp.dest(config.dist + 'content/fonts/')) 
     .pipe(rev.manifest(config.revManifest, { 
      base: config.dist, 
      merge: true 
     })) 
     .pipe(gulp.dest(config.dist)), 
     gulp.src(config.app + 'content/**/*.{woff,woff2,svg,ttf,eot,otf}') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(changed(config.dist + 'content/fonts/')) 
     .pipe(flatten()) 
     .pipe(rev()) 
     .pipe(gulp.dest(config.dist + 'content/fonts/')) 
     .pipe(rev.manifest(config.revManifest, { 
      base: config.dist, 
      merge: true 
     })) 
     .pipe(gulp.dest(config.dist)), 
     gulp.src([config.app + 'robots.txt', config.app + 'favicon.ico', config.app + '.htaccess'], { dot: true }) 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(changed(config.dist)) 
     .pipe(gulp.dest(config.dist)) 
    ); 
}); 

gulp.task('images', function() { 
    return gulp.src(config.app + 'content/images/**') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(changed(config.dist + 'content/images')) 
     .pipe(imagemin({optimizationLevel: 5, progressive: true, interlaced: true})) 
     .pipe(rev()) 
     .pipe(gulp.dest(config.dist + 'content/images')) 
     .pipe(rev.manifest(config.revManifest, { 
      base: config.dist, 
      merge: true 
     })) 
     .pipe(gulp.dest(config.dist)) 
     .pipe(browserSync.reload({stream: true})); 
}); 


gulp.task('languages', function() { 
    var locales = yorc.languages.map(function (locale) { 
     return config.bower + 'angular-i18n/angular-locale_' + locale + '.js'; 
    }); 
    return gulp.src(locales) 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(changed(config.app + 'i18n/')) 
     .pipe(gulp.dest(config.app + 'i18n/')); 
}); 

gulp.task('styles', [], function() { 
    return gulp.src(config.app + 'content/css') 
     .pipe(browserSync.reload({stream: true})); 
}); 

gulp.task('inject', function() { 
    return gulp.src(config.app + 'index.html') 
     .pipe(inject(gulp.src(config.app + 'app/**/*.js').pipe(angularFilesort()), {relative: true})) 
     .pipe(gulp.dest(config.app)); 
}); 

gulp.task('wiredep', ['wiredep:test', 'wiredep:app']); 

gulp.task('wiredep:app', function() { 
    var stream = gulp.src(config.app + 'index.html') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(wiredep()) 
     .pipe(gulp.dest(config.app)); 

    return stream; 
}); 

gulp.task('wiredep:test', function() { 
    return gulp.src(config.test + 'karma.conf.js') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(wiredep({ 
      ignorePath: /\.\.\/\.\.\//, // remove ../../ from paths of injected JavaScript files 
      devDependencies: true, 
      fileTypes: { 
       js: { 
        block: /(([\s\t]*)\/\/\s*bower:*(\S*))(\n|\r|.)*?(\/\/\s*endbower)/gi, 
        detect: { 
         js: /'(.*\.js)'/gi 
        }, 
        replace: { 
         js: '\'src/{{filePath}}\',' 
        } 
       } 
      } 
     })) 
     .pipe(gulp.dest(config.test)); 
}); 

gulp.task('assets:prod', ['images', 'styles', 'html'], build); 

gulp.task('html', function() { 
    return gulp.src(config.app + 'app/**/*.html') 
     .pipe(htmlmin({collapseWhitespace: true})) 
     .pipe(templateCache({ 
      module: 'shiftworkApp', 
      root: 'app/', 
      moduleSystem: 'IIFE' 
     })) 
     .pipe(gulp.dest(config.tmp)); 
}); 

gulp.task('ngconstant:dev', function() { 
    return ngConstant({ 
     dest: 'app.constants.js', 
     name: 'shiftworkApp', 
     deps: false, 
     noFile: true, 
     interpolate: /\{%=(.+?)%\}/g, 
     wrap: 
      '(function() {\n' + 
      ' "use strict";\n' + 
      ' // DO NOT EDIT THIS FILE, EDIT THE GULP TASK NGCONSTANT SETTINGS INSTEAD WHICH GENERATES THIS FILE\n' + 
      ' {%= __ngModule %}\n' + 
      '})();\n', 
     constants: { 
      ENV: 'dev', 
      VERSION: util.parseVersion() 
     } 
    }) 
    .pipe(gulp.dest(config.app + 'app/')); 
}); 

gulp.task('ngconstant:prod', function() { 
    return ngConstant({ 
     dest: 'app.constants.js', 
     name: 'shiftworkApp', 
     deps: false, 
     noFile: true, 
     interpolate: /\{%=(.+?)%\}/g, 
     wrap: 
      '(function() {\n' + 
      ' "use strict";\n' + 
      ' // DO NOT EDIT THIS FILE, EDIT THE GULP TASK NGCONSTANT SETTINGS INSTEAD WHICH GENERATES THIS FILE\n' + 
      ' {%= __ngModule %}\n' + 
      '})();\n', 
     constants: { 
      ENV: 'prod', 
      VERSION: util.parseVersion() 
     } 
    }) 
    .pipe(gulp.dest(config.app + 'app/')); 
}); 

// check app for eslint errors 
gulp.task('eslint', function() { 
    return gulp.src(['gulpfile.js', config.app + 'app/**/*.js']) 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(eslint()) 
     .pipe(eslint.format()) 
     .pipe(eslint.failOnError()); 
}); 

// check app for eslint errors anf fix some of them 
gulp.task('eslint:fix', function() { 
    return gulp.src(config.app + 'app/**/*.js') 
     .pipe(plumber({errorHandler: handleErrors})) 
     .pipe(eslint({ 
      fix: true 
     })) 
     .pipe(eslint.format()) 
     .pipe(gulpIf(util.isLintFixed, gulp.dest(config.app + 'app'))); 
}); 

gulp.task('test', ['wiredep:test', 'ngconstant:dev'], function (done) { 
    new KarmaServer({ 
     configFile: __dirname + '/' + config.test + 'karma.conf.js', 
     singleRun: true 
    }, done).start(); 
}); 


gulp.task('watch', function() { 
    gulp.watch('bower.json', ['install']); 
    gulp.watch(['gulpfile.js', 'pom.xml'], ['ngconstant:dev']); 
    gulp.watch(config.app + 'content/css/**/*.css', ['styles']); 
    gulp.watch(config.app + 'content/images/**', ['images']); 
    gulp.watch(config.app + 'app/**/*.js', ['inject']); 
    gulp.watch([config.app + '*.html', config.app + 'app/**', config.app + 'i18n/**']).on('change', browserSync.reload); 
}); 

gulp.task('install', function() { 
    runSequence(['wiredep', 'ngconstant:dev'], 'languages', 'inject'); 
}); 

gulp.task('serve', function() { 
    runSequence('install', serve); 
}); 

gulp.task('build', ['clean'], function (cb) { 
    runSequence(['copy', 'wiredep:app', 'ngconstant:prod', 'languages'], 'inject', 'assets:prod', cb); 
}); 

gulp.task('default', ['serve']); 

gulpfile.js

運行後吞嚥試驗我得到一個錯誤:

Starting 'wiredep:test'... 
[22:11:26] Starting 'ngconstant:dev'... 
[22:11:26] 'ngconstant:dev' errored after 96 ms 
[22:11:26] Error in plugin 'gulp-tslint-log' 
TypeError: Path must be a string. Received null 

節點版本是v6.10.2和npm vrsion是3.10.10

是否有任何想法如何解決這個問題?

謝謝。

回答

0

試試下面的命令:

npm install --save gulp-tslint-log

希望這將工作!