【问题标题】:Unable to use require with babel 6.3.x [duplicate]无法在 babel 6.3.x 中使用 require [重复]
【发布时间】:2016-03-31 02:26:41
【问题描述】:

我正在使用 babel 来创建我的 gulpfile.babel.js

我正在使用此代码动态包含模块和导入它在 babel 5.8.x 中工作的任务,但升级到 6.3.x 后它停止工作

我无法弄清楚我缺少哪个插件,请帮忙。 请假设以下代码不包含拼写错误。

我正在使用

"babel-preset-es2015": "^6.3.13" 
"gulp-babel": "^6.1.1"

.babelrc 内容

{
  "presets": ["es2015"]
}

一饮而尽:

import gulp from "gulp";
import del from "del";
import { default as runSequence} from "run-sequence";

let basePath = "modules/";
['filename1', 'filename2'].forEach((moduleName) => {
    require(`./${basePath}${moduleName}`).apply(this, [gulp, runSequence, del]);
});

// Tasks are defined in the modules 'required' above

我的 filenameX.js 文件看起来像这样

export default function(gulp, runSequence, del) {
    gulp.task("clean", del.bind(null, ["./temp/"]));
}

【问题讨论】:

    标签: javascript gulp babeljs


    【解决方案1】:

    默认的require功能可以在babel 6.3.x中使用

    ['filename1', 'filename2'].forEach((moduleName) => {
        require(`./${basePath}${moduleName}`).default.apply(this, [gulp, runSequence, del]);
    });
    

    Babel 6.x 已经放弃了一些 CommonJS 互操作行为,并且转译为 ES5 的 ES6 模块现在将其默认暴露为 .default。

    参考文件https://phabricator.babeljs.io/T2683

    【讨论】:

    猜你喜欢
    • 2020-10-14
    • 2018-04-26
    • 2016-02-15
    • 1970-01-01
    • 2015-10-14
    • 2016-11-05
    • 2020-02-29
    • 2018-11-10
    • 1970-01-01
    相关资源
    最近更新 更多