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();
});
如果要包含还包含node-modules/my-config-helper/index.js
或import
关键字的文件(在此示例中为export
),则会发生错误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');
仅影响单个文件,但不影响包含。好的,我该怎么办?只需将babel-core
和babel-register
安装在my-config-helper
中就不够了。
答案 0 :(得分:1)
您需要将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');
}
}