[英]How to make babel/register affect on imported files?
下面的gulpfile.babel.js
由babel-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();
});
如果要包含还包含import
或export
关键字的文件(在此示例中为node-modules/my-config-helper/index.js
),则会出现错误SyntaxError: Unexpected token export
。
require('@babel/register');
import gulp from 'gulp';
import ConfigHelper from 'my-config-helper';
require('@babel/register');
export default class ConfigHelper {
constructor() {
console.log('ConfigHelper: done');
}
}
看起来像require('@babel/register');
仅影响单个文件,但不影响包括。 好的,我该怎么办? 仅仅在my-config-helper
中安装babel-core
和babel-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.