babel,browserify错误:使用删除的babel 5选项base.stage

时间:2017-11-04 19:09:16

标签: javascript gruntjs browserify babel

运行grunt browserify

时出现此错误
  

ReferenceError:[BABEL] src / app.js:使用删除的Babel 5选项:base.stage - 在解析文件时检出相应的stage-x预设http://babeljs.io/docs/plugins/#presets:src / app.js

这是我的gruntfile

module.exports = function(grunt) {


  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    browserify: {
        main: {
          options: {
            browserifyOptions: {
              debug: true
            },
            transform: [["babelify", { "stage": 1 }]]
          },
          src: 'src/app.js',
          dest: 'scripts/app.js'
        }
    },
    watch: {
      files: [ 'src/**/*.js' ],
      tasks: ['browserify'],
      options: {
          spawn: false,
        },
    },
    connect: {
      target:{
            options: {
                port: 9001
            }
        }
    },
    bower: {
        flat: { /* flat folder/file structure */
            dest: 'scripts',
            options: {
                debugging: true
            }
        }
    }

  });

  grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-browserify');
  grunt.loadNpmTasks('main-bower-files');

  grunt.registerTask('default', [ 'bower', 'connect', 'watch']);
  grunt.registerTask('build', [ 'clean', 'bower', 'copy', 'uglify' ]);

};

这是我的babelrc

  {
    "presets": ["stage-1","es2015"]
  }

我该如何解决?

1 个答案:

答案 0 :(得分:1)

错误意味着babelify的grunt定义已过时且无效。

它不再接受名为stage的选项。

我会尝试

 browserify: {
        main: {
          options: {
            browserifyOptions: {
              debug: true
            },
            transform: [["babelify",  {presets: ["stage-1", "es2015"]}]]
          },
          src: 'src/app.js',
          dest: 'scripts/app.js'
        }
    },

{stage: 1}替换为{presets: ... }

或者 - 由于您已在.babelrc中定义了此内容,因此您可以将其完全删除。我认为babelify适用于那些配置。