我试图在ES6中运行快速应用程序。我使用以下工作流程:使用Node + ES6 +未定义的类方法+ Babel
Transpile ES6使用以下一饮而尽任务(在.babelrc
"es2015"
和"stage-0"
预置)给ES5:import gulp from 'gulp'; import gulpBabel from 'gulp-babel'; import sourcemaps from 'gulp-sourcemaps'; gulp.task('babel',() => { gulp.src([ 'someClass.js', 'app.js' ], {base: './', dot: false}) .pipe(sourcemaps.init()) .pipe(gulpBabel()) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('./dist')); });
这似乎是工作的罚款。
运行
node dist/app.js
。下面的代码是在
someClass.js
:export default class SomeClass { someMethod() { return 1 + 1; } }
最后,下面的代码是
app.js
:import SomeClass from './someClass'; //express config console.log(SomeClass); console.log(SomeClass.someMethod);
哪些日志:
[Function: SomeClass]
undefined
下面是相关transpiled代码:
DIST/app.js
var _someClass = require('./someClass');
var _someClass2 = _interopRequireDefault(_someClass);
console.log(_someClass2.default);
console.log(_someClass2.default.someMethod);
DIST/someClass.js
var SomeClass = function() {
function SomeClass() {
_classCallCheck(this, SomeClass);
}
_createClass(SomeClass, [{
key: "someMethod",
value: function someMethod() {
return 1 + 1;
}
}]);
return SomeClass;
}();
exports.default = SomeClass;
为什么someMethod
不确定?
'console.log(SomeClass.someMethod());'你必须调用该方法来获取它的值。 –
我实际上是想通过它作为回调函数,所以我不想立即调用它。即使我这样做,但我得到'_someClass2.default.someMethod不是函数'。 – Adviov