繁体   English   中英

如何使babel / register影响导入的文件?

[英]How to make babel/register affect on imported files?

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

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

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

如果要包含还包含importexport关键字的文件(在此示例中为node-modules/my-config-helper/index.js ),则会出现错误SyntaxError: Unexpected token export

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

import ConfigHelper from 'my-config-helper';

节点模块/我的配置帮助器/index.js

require('@babel/register');

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

看起来像require('@babel/register'); 仅影响单个文件,但不影响包括。 好的,我该怎么办? 仅仅在my-config-helper中安装babel-corebabel-register不够。

您需要将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');
  }
}

暂无
暂无

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

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