javascript - 未捕获的语法错误 : Unexpected token import in "backbone.radio.js"

标签 javascript backbone.js requirejs underscore.js marionette

我正在尝试将一个应用程序从 Backbone 迁移到 Marionette (v3),但我已经在一个点上卡住了两天了。

当我尝试在浏览器中运行该应用程序时,此错误出现在控制台中(并且屏幕是空白的):

Uncaught SyntaxError: Unexpected token importbackbone.radio.js:1

backbone.radio.js 中的第一行是下划线 的导入语句:

import _ from 'underscore';

我使用 Requirejs 作为模块加载器。这是ma​​in.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()
    }
  })
})

有谁知道我为什么会遇到这个问题?

不幸的是,我对如何解决这个问题没有想法,我们将不胜感激任何帮助。

附言:我使用 Marionette v3.0.0、Backbone v1.2.3 和 Requirejs v2.1.15

最佳答案

它提示 import 语句表明您正在引用源文件。确保您的 backbone.radio-path 转到构建文件。

关于javascript - 未捕获的语法错误 : Unexpected token import in "backbone.radio.js",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38635890/

相关文章:

javascript - 如何阻止 dropzone 删除我的文件?

javascript - TypeError : this. props.AddNewHero 不是一个函数

jquery - Backbone.js、下划线.js : template images preloading

javascript - 关于 requirejs 动态加载模块的建议或在我的情况下使用优化/捆绑工具

javascript - 使用 requirejs 超时加载异步资源

javascript - 侧边栏在较小的屏幕上取消切换

javascript - 插入内联 HTML 或创建新元素更快吗?

requirejs - RequireJS优化工具排除文件夹

javascript - Pycharm:导航到 require ('path/to/file' 中指定的 JS 源)

javascript - Backbone.js 和 router.navigate