如何使 babel/register 影响导入的文件?
How to make babel/register affect on imported files?
低于 gulpfile.babel.js
运行s 没有错误 babel-node gulpfile.babel.js
(我知道要执行 gulp 任务我应该 运行 gulp taskname
,但 babel-node gulpfile.babel.js
用于在没有 运行ning 任务的情况下进行调试。
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';
node-modules/my-config-helper/index.js
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');
}
}
低于 gulpfile.babel.js
运行s 没有错误 babel-node gulpfile.babel.js
(我知道要执行 gulp 任务我应该 运行 gulp taskname
,但 babel-node gulpfile.babel.js
用于在没有 运行ning 任务的情况下进行调试。
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';
node-modules/my-config-helper/index.js
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');
}
}