0

下面gulpfile.babel.js运行没有错误babel-node gulpfile.babel.js(我知道要执行我应该运行的 gulp 任务gulp taskname,但babel-node gulpfile.babel.js用于在不运行任务的情况下进行调试)。

require('@babel/register');
import gulp from 'gulp';

gulp.task('default', done => {
  console.log('No problem!');
  done();
});

如果包含也包含or关键字的文件(node-modules/my-config-helper/index.js在此示例中) ,则会发生错误。importexportSyntaxError: Unexpected token export

require('@babel/register');
import gulp from 'gulp';

import ConfigHelper from 'my-config-helper';

节点模块/my-config-helper/index.js

require('@babel/register');

export default class ConfigHelper {
  constructor() {
    console.log('ConfigHelper: done');
  }
}

看起来require('@babel/register');只影响单个文件但不包括在内。好的,我该怎么办?仅仅安装babel-core并插入babel-registermy-config-helper不够的。

4

1 回答 1

3

您需要将 ES 语法移动到另一个文件中,并从 index.js 中获取该文件:

// index.js
require('@babel/register');
require("./gulp-stuff"); <-- from this point on - all ES code will be transpiled

// gulp-stuff.js
import gulp from 'gulp';
import ConfigHelper from './my-config-helper';
// ....


// my-config-helper.js
export default class ConfigHelper {
  constructor() {
    console.log('ConfigHelper: done');
  }
}
于 2018-11-07T06:40:05.147 回答