2016-04-12 2 views
0

私はes6をgrunt-babelでコンパイルしようとしています。コマンドラインにgrunt babelと入力すると、ハングアップしてバベルを実行することはありません。エラーを返さず、クラッシュするだけです。 Gruntfile.jsには他のタスクがあり、うまく動いているので、Gruntfile.jsの構造は正しいです。ここでgrunt-babelがハングし、エラーメッセージを返さない

は私Gruntfileです:ここでは

'use strict'; 
 

 
module.exports = function(grunt) { 
 
    require('load-grunt-tasks')(grunt); 
 

 
    // initialize Grunt 
 
    grunt.initConfig({ 
 
    pkg: grunt.file.readJSON('package.json'), 
 

 
    'babel': { 
 
     options: { 
 
     sourceMap: true, 
 
     presets: ['babel-preset-es2015'] 
 
     }, 
 
     dist: { 
 
     files: { 
 
      'js/survey.js': 'build/survey.js' 
 
     } 
 
     } 
 
    }, 
 
    // create jshint task 
 
    jshint: { 
 
     dev: { 
 
     // tell jshint what check 
 
     src: ['Gruntfile.js', 'server.js', 'js/**/*.js', 'models/**/*.js', 'routes/**/*.js', '!build/**', '!tests/client/bundle.js', '!tests/karma_tests/bundle.js', '!js/imageMapResizer.min.js', '!js/kickstart.js', '!js/form-validator.js', '!js/imageMapResizer.js', '!js/jquery-ui.min.js', '!js/jquery.base64.js', '!js/kickstart.js'], 
 
     options: { 
 
      node: true, 
 
      globals: { 
 
      describe: true, 
 
      it: true, 
 
      before: true, 
 
      after: true, 
 
      beforeEach: true, 
 
      afterEach: true, 
 
      res: true 
 
      } 
 
     } 
 
     }, 
 

 
     mocha: { 
 
     // tell mocha where test files are 
 
     src: ['tests/test_entry.js', '!tests/client/bundle.js', '!tests/karma_tests/bundle.js'], 
 
     options: { 
 
      node: true, 
 
      globals: { 
 
      describe: true, 
 
      it: true, 
 
      before: true, 
 
      after: true, 
 
      beforeEach: true, 
 
      afterEach: true, 
 
      res: true, 
 
      expect: true 
 
      } 
 
     } 
 
     }, 
 
     jasmine: { 
 
     src: ['<%= jshint.dev.src %>', '<%= jshint.mocha.src %>'], 
 
     options: { 
 
      node: true, 
 
      jasmine: true, 
 
      globals: { 
 
      describe: true, 
 
      it: true, 
 
      before: true, 
 
      after: true, 
 
      beforeEach: true, 
 
      afterEach: true, 
 
      expect: true, 
 
      react: true 
 
      } 
 
     } 
 
     }, 
 

 
     // create jscs task 
 
     jscs: { 
 
     dev: { 
 
      // tell jscs to test the same files as jshint 
 
      src: ['<%= jshint.dev.src %>', '<%= jshint.mocha.src %>'] 
 
     } 
 
     } 
 
    }, 
 

 
    mocha: { 
 
     // tell mocha where the test file is 
 
     src: ['tests/test_entry.js'], 
 
     options: { 
 
     node: true, 
 
     globals: { 
 
      describe: true, 
 
      it: true, 
 
      before: true, 
 
      after: true, 
 
      beforeEach: true, 
 
      afterEach: true, 
 
      res: true, 
 
      expect: true 
 
     } 
 
     } 
 
    }, 
 

 
    // create simplemocha task 
 
    simplemocha: { 
 
     dev: { 
 
     src: ['tests/test_entry.js'] 
 
     } 
 
    } 
 
    }); 
 

 
    // register linting task 
 
    grunt.registerTask('lint', ['jshint:dev', 'jshint:mocha', 'jshint:jasmine']); 
 
    // register mocha test task 
 
    grunt.registerTask('test', ['simplemocha:dev']); 
 
    grunt.registerTask('babel', ['babel']); 
 
    grunt.registerTask('default', ['test']); 
 
};

は私のpackage.jsonです:

{ 
 
    "name": "event_site_bootstrap", 
 
    "version": "0.1.0", 
 
    "description": "", 
 
    "main": "server.js", 
 
    "scripts": { 
 
    "test": "mocha tests/test_entry.js", 
 
    "start": "node server.js" 
 
    }, 
 
    "author": "", 
 
    "license": "MS-PL", 
 
    "dependencies": { 
 
    "bcrypt-nodejs": "latest", 
 
    "body-parser": "^1.15.0", 
 
    "cookie-parser": "^1.4.1", 
 
    "dotenv": "^1.2.0", 
 
    "eat": "^0.1.1", 
 
    "express": "^4.13.4", 
 
    "flash": "^1.1.0", 
 
    "jquery": "^2.2.1", 
 
    "multer": "^1.1.0", 
 
    "passport": "^0.3.2", 
 
    "passport-http": "^0.3.0", 
 
    "sequelize": "^3.19.3", 
 
    "sequelize-encrypted": "^0.1.0", 
 
    "tedious": "^1.13.2" 
 
    }, 
 
    "devDependencies": { 
 
    "babel-cli": "^6.7.5", 
 
    "babel-core": "^6.7.6", 
 
    "babel-polyfill": "^6.7.4", 
 
    "babel-preset-es2015": "^6.6.0", 
 
    "babylon": "^6.7.0", 
 
    "chai": "^3.2.0", 
 
    "chai-http": "^1.0.0", 
 
    "cli-color": "^1.1.0", 
 
    "colors": "^1.1.2", 
 
    "expect": "^1.9.0", 
 
    "grunt": "^0.4.5", 
 
    "grunt-babel": "^6.0.0", 
 
    "grunt-cli": "^0.1.13", 
 
    "grunt-contrib-jshint": "^0.11.3", 
 
    "grunt-jscs": "^2.1.0", 
 
    "grunt-mocha-cli": "^2.0.0", 
 
    "grunt-simple-mocha": "^0.4.0", 
 
    "load-grunt-tasks": "^3.5.0", 
 
    "mocha": "^2.3.4" 
 
    } 
 
}

そして.babelrcトンのように見えます彼:

{ 
 
    "presets": ["es2015"] 
 
}

私は昨日からこれを理解しようとしてきたが、エラーメッセージなしで、問題が何であるかを知ることは困難となっています。私は文字列としてバーベルを使用していますが、引用符も付けずに試してみましたが、まったく同じように動作しました。また'babel'のオプションにpresets: ['babel-preset-es2015']を追加しようとしましたが、何も変更されませんでした。

詳細情報が必要な場合や、他のファイルを見たい場合は、私に教えてください。すべての助けを前もってありがとう!

+0

です。 '' grunt babel -vvvv --stack'を実行してみてください。 –

+0

survey.jsのサイズはどれくらいですか? –

+0

@TamasHegedus非常に小さく(コメント付き25行)、/ jsフォルダからjsファイルの束を実際にコンパイルしたいのですが、動作しませんでしたので、survey.jsファイルのみで実行しようとしましたそれは小さくて、複数のファイルを同時にコンパイルしようとすることによる問題の可能性を排除することができたからです。 – CascadiaJS

答えて

4

見つけました!行を削除します。

grunt.registerTask('babel', ['babel']); 

無限ループが発生します。すでにbabelというタスクがあるので、無限のタスクでそれを再定義するだけです。

また、'js/survey.js': 'build/survey.js''build/survey.js': 'js/survey.js'とすることもできます。形式はtarget: source

+0

ありがとう!それを固定した私はマルチタスクのようなタスクを登録していましたが、無限ループでバベルを繰り返し実行するタスクは1つしかありません – CascadiaJS

関連する問題