2016-07-28 55 views
3

我試圖將應用程序從Backbone遷移到Marionette(v3),但是我已經在一個點上停留了兩天了。未捕獲的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,骨幹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

那它抱怨的import語句來爲您引用源文件的指示。確保您的backbone.radio -path轉到構建文件。

+0

這解決了這個問題。構建的路徑以某種方式替換爲源文件的路徑。謝謝! –

相關問題