2016-04-03 8 views
1

ではありません:ノードがReact.js - operationStore.getItems次のコマンドを使用して自分のWebアプリケーションを実行しているとき、私は次のエラーを取得しています機能

捕捉されない例外TypeErrorをgulpfile.babel --harmony:operationStore.getItemsではありません関数

私は問題の内容を知ることさえできません。 gulpファイルとエラーの発生場所を次に示します。

私のapp.js以外のすべてをindex.ejsファイルで宣言するとき、以前は動作していました。しかし、それは私が必要とするサーバー側のファイルでes6を使用することを妨げました。だから私は - ハーモニーフラグを使用すると私がes6を使用できるようになると死んだ。しかし、ハーモニーフラグを使用したときに起こるこのエラーを乗り越えることはできません。

getItemsは明らかに私にとっては何の機能ですか?

Main.jsx

var Login = require('./auth/LogApp.jsx'); 
var operationStore = require('./stores/OperationStore.jsx'); 
var initial = operationStore.getItems(); 

Gulpfile.babel.js

var gulp = require('gulp'); 
var LiveServer = require('gulp-live-server'); 
var browserSync = require('browser-sync'); 
var browserify = require('browserify'); 
var source = require('vinyl-source-stream'); 
var babelify = require('babelify'); 

gulp.task('live-server', function(){ 
    var server = new LiveServer('server/main.js'); 
    server.start(); 
}) 

gulp.task('bundle',['copy'], function(){ 
    return browserify({ 
     entries:'app/main.jsx', 
     jquery : 'jquery-browserify', 
     debug:true, 
    }) 
     .transform(babelify, 
      { 
       "presets": ["es2015", "react", "stage-1"], 
       "plugins": ["transform-decorators-legacy", "transform-function-bind"], 
       extensions: [".jsx", ".js",] 
      }) 
     .bundle() 
     .pipe(source('app.js')) 
     .pipe(gulp.dest('./.tmp')); 
}) 

gulp.task('copy', function() { 
    gulp.src(['app/*.css', 'app/Icons/**/*','app/stores/**/*', 'app/helper/**/*', 'app/dispatcher.js','bundle.js', 'app/helpers/RestHelper.js', 
      'app/actions/OperationActionCreator.jsx', 'app/actions/SurgeonActionCreator.jsx', 
      'app/actions/PatientActionCreator.jsx','app/actions/ORActionCreator.jsx', 
      'node_modules/guid/guid.js','node_modules/jquery/**/*', 'bower_components*/**/*']) 
     .pipe(gulp.dest('./.tmp')); 
}) 

gulp.task('serve', ['bundle', 'live-server'], function(){ 
    browserSync.init(null,{ 
     proxy:"http://localhost:7777", 
     port: 9001 
    }) 
}) 

gulp.run('serve') 

OperationStore.jsx

var operationStore = function() { 

    var operations = []; 

    var listeners = []; 

    var updateOperations = function(helper){ 
     helper.get("api/operations") 
      .then(function(data){ 
       operations = data; 
       triggerListeners(listeners); 
      }); 
    } 

    updateOperations(helper); 

    function getItems(){ 
     return operations; 
    }; 

    var addOperationItem = function(operation) { 
     operations.push(operation); 
     triggerListeners(listeners); 
     helper.post("api/operations", operation); 
    } 

    var deleteOperationItem = function (operation) { 
     var index; 
     operations.filter(function (_operation, _index) { 
      if (_operation.name == operation.name) { 
       index = _index; 
      } 
     }); 
     operations.splice(operation, 1); 
     triggerListeners(listeners); 

     //added this 
     helper.del('api/operations/'+ operation._id); 
    } 

    var onChange = function(listener){ 
     listeners.push(listener); 
     return listeners; 
    } 

    var triggerListeners = function(listeners) { 
     listeners.forEach(function(listener) { 
      listener(operations); 
     }) 
    } 

    var registerEvent = function (event) { 
     var split = event.type.split(':'); 
     if (split[0] === 'operation-item') { 
      switch (split[1]) { 
       case "add": 
        addOperationItem(event.payload); 
        break; 
       case "delete": 
        deleteOperationItem(event.payload); 
        break; 
      } 
     } 
    } 

    var dispatchRegister = function(dispatcher) { 
     dispatcher.register(registerEvent); 
    } 

    dispatchRegister(dispatcher); 

    return { 
     getItems: getItems, 
     onChange: onChange, 
     addOperationItem: addOperationItem, 
     deleteOperationItem: deleteOperationItem, 
     triggerListeners: triggerListeners, 
     dispatchRegister: dispatchRegister, 
     registerEvent: registerEvent, 
     updateOperations: updateOperations 
    } 
}(); 

答えて

0

私はそれが私が逃したシンプルで基本的な何かを知っていました。 OperationStore.jsxの最後にはmodule.exportsが必要です。ここでは新しいjsxが動作します。

import RangeDate from './../components/src/range_date' 

function operationStore(){ 
    ... 
} 

module .exports = new operationStore(); 
関連する問題