简体   繁体   English

grunt-babel挂起并且不返回错误消息

[英]grunt-babel hangs and doesn't return error message

I am trying to compile my es6 to es5 with grunt-babel. 我正在尝试使用grunt-babel将es6编译为es5。 When I enter grunt babel into the command line, it hangs and never runs babel. 当我在命令行中输入grunt babel ,它将挂起并且永远不会运行babel。 It doesn't return an error or crash it just hangs. 它不会返回错误或崩溃,而只是挂起。 I have other tasks in my Gruntfile.js and they run just fine, so the structure of the Gruntfile.js is correct. 我在Gruntfile.js中还有其他任务,它们运行得很好,因此Gruntfile.js的结构是正确的。

Here is my Gruntfile: 这是我的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']); }; 

Here is my package.json: 这是我的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" } } 

And .babelrc looks like this: .babelrc看起来像这样:

 { "presets": ["es2015"] } 

I've been trying to figure this out since yesterday, but without an error message it's been difficult to know what the problem is. 自昨天以来,我一直在试图找出答案,但是没有错误消息,很难知道问题出在哪里。 I am using babel as a string, but I have tried without the quotation marks too and it acted exactly the same. 我使用babel作为字符串,但是我也尝试了不带引号的行为,它的作用完全相同。 I have also tried adding presets: ['babel-preset-es2015'] to the options under 'babel' but it didn't change anything. 我也尝试过将presets: ['babel-preset-es2015']'babel'下的选项中,但是它没有任何改变。

Any help would be greatly appreciated, let me know if you need more info or want to see other files. 任何帮助将不胜感激,如果您需要更多信息或想查看其他文件,请告诉我。 Thanks in advance for all the help! 在此先感谢您提供的所有帮助!

Found it! 找到了! Remove the line 删除线

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

It causes an infinite loop. 它导致无限循环。 You already have a task called babel , so that line just redefines it with an infinite task. 您已经有一个名为babel的任务,因此该行仅使用无限任务对其进行了重新定义。

Also you might want 'js/survey.js': 'build/survey.js' to be 'build/survey.js': 'js/survey.js' . 另外,您可能希望'js/survey.js': 'build/survey.js''build/survey.js': 'js/survey.js' The format is target: source 格式为target: source

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM