我試圖在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