2016-04-03 25 views
1

değil: düğümReact.js - operationStore.getItems aşağıdaki komutu kullanarak App benim Web çalıştırırken aşağıdaki hatayı alıyorum bir işlev

Yakalanmayan TypeError gulpfile.babel --harmony: operationStore.getItems değil Bir problemin ne olduğunu bilmeye bile yakın değilim. İşte gulp dosyası ve hatanın oluştuğu yer.

Daha önce index.ejs dosyasındaki app.js'm dışındaki her şeyi bildirirken kullanılan kod. Ancak bu, ihtiyacım olan sunucu tarafı dosyalarındaki es6'yı kullanmamı engelledi. Öyleyse ben - armoni bayrağını kullanmamın es6'yı kullanmamı sağladığını söyledim. Ancak uyum bayrağını kullandığımda gerçekleşen bu hatanın üstesinden gelemiyorum.

getItems açık bir şekilde benim için bir işlev, ne oluyor?

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 
    } 
}(); 

cevap

0

Ben Kaçırdığım henüz temel basit bir şey olduğunu biliyordum. OperationStore.jsx, sonunda module.exports gerektirir. İşte yeni jsx çalışır.

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

function operationStore(){ 
    ... 
} 

module .exports = new operationStore(); 
İlgili konular