【发布时间】:2023-03-05 20:04:01
【问题描述】:
我还是一个初学者,我尝试将一个类导出和导入到一个主文件中,另一个类在其他类文件中并使用它们。
然后用 6to5(现在的 Babel)吞下 ES5 代码。
// file a.js
import B from 'b.js';
class A {
constructor() {
B.methodB();
}
}
export default A;
// file b.js
class B {
methodB() {
console.log('hi from b');
}
}
export default B;
// file main.js
import A from 'a.js';
new A();
我的 gulp 文件:
var gulp = require('gulp');
var to5 = require('gulp-6to5');
gulp.task('default', function () {
return gulp.src('main.js')
.pipe(to5())
.pipe(gulp.dest('dist'));
});
这是我的dist/main.js 文件:
"use strict";
var _interopRequire = function (obj) {
return obj && (obj["default"] || obj);
};
var A = _interopRequire(require("a.js"));
new A();
控制台报错:ReferenceError: require is not defined
哪个当然行不通……我做错了什么或者我还缺少什么?我不完全明白。
【问题讨论】:
-
您仍然需要一种从浏览器获取模块的方法,6to5 不会将文件组合在一起。
-
如何用 gulp 制作这个? ://
-
你可以使用像 browserify.org 或 esperantojs.org 这样的打包工具。
标签: javascript ecmascript-6 babeljs