3

백본에서 Marionette (v3)으로 응용 프로그램을 마이그레이션하려고하는데 이미 이틀 동안 문제가 발생했습니다.Uncaught SyntaxError : "backbone.radio.js"에서 예기치 않은 토큰 가져 오기

내가 브라우저에서 응용 프로그램을 실행하려고하면이 오류가 콘솔에 표시 (화면이 비어) :

catch되지 않은 구문 에러 : 예기치 않은 토큰 수입backbone.radio.js에 : 1

backbone.radio.js에서

첫 번째 줄은 은 밑줄에 대한 import 문이다 :

import _ from 'underscore'; 

나는 Requirejs을 모듈 로더로 사용합니다. 이 main.js의 구성입니다 : 이것은

require.config({ 
    paths: { 
    jquery: '../bower_components/jquery/dist/jquery', 
    underscore: '../bower_components/underscore/underscore', 
    backbone: '../bower_components/backbone/backbone', 
    'backbone.radio': '../bower_components/backbone.radio/build/backbone.radio', 
    'backbone.babysitter': '../bower_components/backbone.babysitter/src/build/backbone.babysitter', 
    marionette: '../bower_components/marionette/lib/backbone.marionette', 
    bootstrap: '../bower_components/bootstrap/dist/js/bootstrap', 
    text: '../bower_components/requirejs-plugins/lib/text' 
    }, 
    map: { 
    '*': { 
     'backbone.wreqr': 'backbone.radio' 
    } 
    }, 
    shim: { 
    jquery: { 
     exports: '$' 
    }, 
    underscore: { 
     exports: '_' 
    }, 
    backbone: { 
     deps: [ 'underscore', 'jquery' ], 
     exports: 'Backbone' 
    }, 
    marionette: { 
     deps: [ 'jquery', 'underscore', 'backbone' ], 
     exports: 'Marionette' 
    }, 
    bootstrap: { 
     deps: [ 'jquery' ] 
    } 
    } 
}) 

require(['appinstance'], function (app) { 
    app.start() 
}) 

appinstance.js :

define(function (require) { 
    var App = require('app') 
    return new App() 
}) 

그리고이 파일 app.js 내입니다 :

define(function (require) { 
    var $ = require('jquery') 
    var _ = require('underscore') 
    var Backbone = require('backbone') 
    var Router = require('router') 
    var Controller = require('controller') 
    var Marionette = require('marionette') 
    var CommonHeaderView = require('views/common/header') 

    return Marionette.Application.extend({ 
    /** 
    * Define the regions for the application. 
    * 
    * @returns {Object} 
    */ 
    regions: function() { 
     return { 
     header: '#header' 
     } 
    }, 
    /** 
    * 
    * @param {Object} options 
    */ 
    start: function (options) { 
     var commonHeaderView = new CommonHeaderView() 

     Marionette.Application.prototype.start.apply(this, [options]) 

     this.header.show(commonHeaderView) 

     this.Router = new Router({ controller: new Controller() }) 

     Backbone.history.start() 
    } 
    }) 
}) 

이 문제가 발생하는 이유를 아는 사람이 있습니까?

불행히도이 문제를 해결하는 방법에 대한 아이디어가 없어서 도움이 될 것입니다.

PS : 나는 마리오네트 사용 v3.0.0, 백본 v1.2.3 및 Requirejs v2.1.15 그것이 import -statement에 대해 불평 그건

+0

import 문은 빌드 파일에서 찾을 수 없으며 개발자가'backbone.radio'를 만들 때 사용하는 소스 파일에서만 찾을 수 있습니다. 저장소의 파일을 보면 (https://github.com/marionettejs/backbone.radio/blob/master/build/backbone.radio.js)'import' 문은 없습니다. 올바른 파일을 다운로드 했습니까? – Tholle

+1

대단히 감사합니다! 이것은 문제를 해결했습니다. 빌드 경로가 어떻게 든 소스 파일의 경로로 바뀌 었습니다. –

+0

좋아요! 나는 대답을 추가 할 것이다. – Tholle

답변

3

는 소스 파일을 참조하는 표시입니다 . backbone.radio -path가 빌드 파일로 이동하는지 확인하십시오.

+0

이 문제가 해결되었습니다. 빌드 경로는 소스 파일의 경로로 대체되었습니다. 고맙습니다! –

관련 문제