3

私は、アプリケーションをBackboneからMarionette(v3)に移行しようとしていますが、すでに2日間ポイントに固執しています。Uncaught SyntaxError: "backbone.radio.js"で予期しないトークンのインポート

私は、ブラウザでアプリケーションを実行しようとすると、このエラーがコンソールに表示(と画面に何も表示されない):

キャッチされないでSyntaxError: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を使用し、それはimport -statementが報告されるバックボーンv1.2.3とRequirejs v2.1.15

+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

これは問題を解決しました。ビルドへのパスは何とかソースファイルへのパスに置き換えられました。ありがとうございました! –

関連する問題