백본에서 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에 대해 불평 그건
import 문은 빌드 파일에서 찾을 수 없으며 개발자가'backbone.radio'를 만들 때 사용하는 소스 파일에서만 찾을 수 있습니다. 저장소의 파일을 보면 (https://github.com/marionettejs/backbone.radio/blob/master/build/backbone.radio.js)'import' 문은 없습니다. 올바른 파일을 다운로드 했습니까? – Tholle
대단히 감사합니다! 이것은 문제를 해결했습니다. 빌드 경로가 어떻게 든 소스 파일의 경로로 바뀌 었습니다. –
좋아요! 나는 대답을 추가 할 것이다. – Tholle