2016-06-14 4 views
2

그루트로 컴파일하려고하면이 오류가 발생합니다. 전에 많이 사용하지는 않았지만이 프로젝트에서이 오류가 발생하는 것만 같았고 내 서버의 다른 프로젝트에서도 잘 작동합니다.경고 : 경로는 문자열이어야합니다. null을 받았습니다

"jshint : 주"실행 (jshint) 작업 경고 : 경로 문자열이어야합니다. Received null 계속하려면 --force를 사용하십시오.

경고로 인해 중단되었습니다.

그런트 파일

module.exports = function(grunt) { 

    // Project configuration. 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    uglify: { 

     options: { 
     mangle: false 
     }, 

     target: { 
     files: { 
      'script/dist/main.min.js': 'script/dist/main.js' 
     } 
     }, 

     build: { 
     files: { 
      'script/dist/build.min.js': 'script/dist/build.min.js' 
     } 
     } 

    }, 

    concat: { 
     options: { 
     stripBanners: true, 
     banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' + 
      '<%= grunt.template.today("yyyy-mm-dd") %> */', 
     }, 

     srcJS: { 
     src: ['script/src/menu.js', 
      'script/src/custom_plugins.js', 
      'script/src/banner.js', 
      'script/src/latestNews.js', 
      'script/src/officers.js', 
      'script/src/eventsCalendar.js', 
      'script/src/combinedSocialMedia.js', 
      'script/src/haveYourSay.js', 
      'script/src/photoGallery.js', 
      'script/src/countdown.js' 
     ], 
     dest: 'script/dist/main.js' 
     }, 

     css: { 
     src: ['style/libs/bootstrap.min.css', 
      'style/libs/bootstrap-theme.min.css', 
      'style/src/css/*' 
     ], 
     dest: 'style/dist/build.min.css' 
     }, 

     build: { 
     src: ['script/libs/jquery.easing.min.js', 
      'script/dist/main.js', 
      'script/libs/bootstrap.min.js', 
      'script/libs/velocity.min.js', 
      'script/libs/date.js', 
      'script/libs/jquery.timeago.js', 
      'script/libs/owl.carousel.min.js' 
     ], 
     dest: 'script/dist/build.min.js' 
     } 

    }, 

    jshint: { 

     main: 'script/dist/main.js' 

    }, 

    watch: { 

     js: { 
     files: 'script/src/*', 
     tasks: ['concat:srcJS', 'uglify:target', 'jshint:main', 'copy:js'] 
     }, 

     css: { 
     files: 'style/src/css/*', 
     tasks: ['copy:css'] 
     }, 

     less: { 
     files: 'style/src/less/*', 
     tasks: ['less', 'copy:css'] 
     }, 

     html: { 
     files: '*.html', 
     tasks: ['validation', 'bootlint'] 
     } 

    }, 

    clean: { 
     js: [ 
     'script/dist/main.min.js', 
     'dist/build.min.js', 
     'dist/build.min.css' 
     ] 
    }, 

    copy: { 
     css: { 
     files: [ 

      { 
      expand: true, 
      'src': 'style/src/css/main.css', 
      'dest': 'style/dist/', 
      flatten: true, 
      rename: function(dest, src) { 
       return dest + src.replace('main', 'build.min'); 
      } 
      }, 

      { 
      expand: true, 
      'src': 'style/dist/build.min.css', 
      'dest': 'dist/', 
      flatten: true 
      }, 

     ] 
     }, 

     js: { 
     files: [{ 
      expand: true, 
      'src': 'script/dist/build.min.js', 
      'dest': 'dist/', 
      flatten: true 
     }] 
     } 
    }, 

    validation: { 
     options: { 
     reset: grunt.option('reset') || false, 
     stoponerror: true, 
     relaxerror: ['Bad value X-UA-Compatible for attribute http-equiv on element meta.'] //ignores these errors 
     }, 
     files: { 
     src: ['homepage.html'] 
     } 
    }, 

    bootlint: { 
     options: { 
     stoponerror: false, 
     relaxerror: ['E001', 'E003', 'E031', 'W001', 'W002', 'W003', 'W005', 'W007', 'W009', 'E013'] 
     }, 
     files: ['homepage.html'], 
    }, 

    less: { 
     build: { 
     options: { 
      paths: ["style/src/less"], 
      cleancss: true, 
      compress: true 
     }, 
     files: { 
      "style/src/css/main.css": "style/src/less/main.less" 
     } 
     } 
    } 

    }); 

    // Load the plugin that provides the "uglify" task. 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-jshint'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-contrib-copy'); 
    grunt.loadNpmTasks('grunt-contrib-clean'); 
    grunt.loadNpmTasks('grunt-contrib-less'); 
    grunt.loadNpmTasks('grunt-html-validation'); 
    grunt.loadNpmTasks('grunt-bootlint'); 

    // Default task(s). 
    //grunt.registerTask('default', ['concat:srcJS','concat:css','uglify','jshint:main']); 
    grunt.registerTask('default', [ 
    'validation', 
    'bootlint', 
    'concat:srcJS', 
    'jshint:main', 
    'uglify:target', 
    'clean', 
    'concat:build', 
    'uglify:build', 
    'less', 
    'copy' 
    ]); 
}; 
+1

gruntFile을 게시 할 수 있습니까? – Ayyoub

+0

완료했습니다. 위를 참조하십시오. – user3005003

+0

경로가 잘못되었다고 생각합니다. jsHint에서 dist/main.js가 아닌 main을 가리켜 야합니다! 경로를 주 경로로 전환 해보세요. – Ayyoub

답변

13

reporterOutput은 문자열이어야합니다. 생략하면 null으로 간주됩니다.

jshint: { 
    main: 'script/dist/main.js', 
    reporterOutput: '' // <-- Add an empty String here 
} 
3

어떤 발전기를 사용하는 경우가 나를 위해이

jshint: { 
     main: { 
     options: { 
      jshintrc: '.jshintrc', 
      reporterOutput: "" // Empty string inside options 
     }, 
     src: createFolderGlobs('*.js') 
     } 
    } 
+0

'createFolderGlobs'는 무엇을 하는가? – VinGarcia

0

같이 제공하여 Gruntfile.js에 대한 빈 문자열을 제공, 빈 문자열 값으로 reporterOutput을 추가했다 구성 객체 내의 Gruntfile.js에 다음과 같이 표시됩니다.

{ 
    jshint: { 
    options: { 
     jshintrc: ".jshintrc", 
     reporterOutput: '' 
    } 
    } 
} 

고쳤다.