2016-04-28 13 views
0

Ich versuche, diese Spezifikation zu laufen und ich habe diesen Fehler: Syntaxerror: Einfuhranmeldungen nur auf oberster Ebene eines ModulsKarma Ausgabe Javascript Import Syntax

erscheinen Aber wie Sie sehen, ich habe den Import auf die Oberseite, also könnte es einen anderen Grund dafür geben?

ng-form-builder.spec.js

import angular from "angular"; 
import mocks from "angular-mocks"; 
import "src/ng-form-builder.js"; 

var inject = mocks.inject; 
var module = mocks.module; 

describe('ng-form-builder', function() { 
    var scope, $compile, $rootScope, element; 

    function createDirective(template) { 
    var elm; 

    elm = angular.element(template); 
    angular.element(document.body).prepend(elm); 
    $compile(elm)(scope); 
    scope.$digest(); 

    return elm; 
    } 

    beforeEach(module('ngSanitize', 'peoplewareDo.ng-form-builder')); 
    beforeEach(inject(function(_$rootScope_, _$compile_) { 
    $rootScope = _$rootScope_; 
    scope = $rootScope.$new(); 
    $compile = _$compile_; 
    })); 

ng-form-builder.js

(function() { 

'use strict'; 

angular.module('peoplewareDo.ng-form-builder', []).directive('ngFormBuilder', function() { 
    .... 
}); 

// coffeescript's for in loop 
var __indexOf = [].indexOf || function(item) { 
     for (var i = 0, l = this.length; i < l; i++) { 
      if (i in this && this[i] === item) return i; 
     } 
     return -1; 
    }; 

angular.module('peoplewareDo.ng-form-builder', []).directive('ngFormField', function($http, $compile) { 
... 

}); 

}()); 

Konsolprotokoll

[[email protected] ng-form-builder]$ gulp test 
[15:01:07] Using gulpfile ~/workspace/ng-form-builder/gulpfile.js 
[15:01:07] Starting 'clean'... 
[15:01:07] Starting 'scripts'... 
[15:01:07] Finished 'scripts' after 65 ms 
[15:01:07] Starting 'styles'... 
[15:01:07] Starting 'jshint-test'... 
[15:01:07] Starting 'karma'... 
[15:01:07] Finished 'clean' after 205 ms 
INFO [karma]: Karma v0.12.37 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser Firefox 
[15:01:08] Finished 'jshint-test' after 346 ms 
[15:01:08] Finished 'styles' after 500 ms 
[15:01:08] Starting 'build'... 
[15:01:08] Finished 'build' after 6.5 μs 
INFO [Firefox 45.0.0 (Fedora 0.0.0)]: Connected on socket saObD8MsBt0Hw9swPwC5 with id 21261564 
Firefox 45.0.0 (Fedora 0.0.0) ERROR 
    SyntaxError: import declarations may only appear at top level of a module 
    at /home/vns/workspace/ng-form-builder/test/ng-form-builder.spec.js:1 
[15:01:11] 'karma' errored after 4.06 s 
[15:01:11] Error: 1 
    at formatError (/usr/lib/node-v5.7.0-linux-x64/lib/node_modules/gulp/bin/gulp.js:169:10) 
    at Gulp.<anonymous> (/usr/lib/node-v5.7.0-linux-x64/lib/node_modules/gulp/bin/gulp.js:195:15) 
    at emitOne (events.js:90:13) 
    at Gulp.emit (events.js:182:7) 
+0

'import" src/ng-form-builder.js ";'? Ist das gültig? –

+0

Können Sie den Inhalt der 'src/ng-form-builder.js' Datei posten? – softvar

+0

Ich dachte auch darüber nach, aber ich habe es auskommentiert und habe das gleiche Problem, also ja es ist gültig. –

Antwort

1

Das Problem ist, dass die folgende, die ist der Browser, in dem dieser Code ausgeführt wird, wie hier zu sehen ist:

INFO [Firefox 45.0.0 (Fedora 0.0.0)]: Connected on socket saObD8MsBt0Hw9swPwC5 with id 21261564 
Firefox 45.0.0 (Fedora 0.0.0) ERROR 

Unterstützt ES6 nicht vollständig. Das Übersetzen von ES6 nach ES5 ist erforderlich, damit dieser Code ausgeführt werden kann.

+0

Vielen Dank, dass funktioniert –

+0

Sie können dieses andere Problem überprüfen, das ich habe; https://stackoverflow.com/questions/36939435/karma-issue-javascript-referenceerror-system-is-not-defined –

0

Import ist die ES2015-Funktion, die derzeit von vielen Browsern nicht unterstützt wird. Verwenden Sie Babel - ein Javascript-Compiler, der von EC2015 zu ES5 kompiliert.