es6模块转换

我的es6语法js文件es2015.js:

import $ from '../../bower_components/jquery/dist/jquery';
$(document).ready(function(){
    $('body').append($('<p>hello es6 module</p>'));
});

然后我是想通过babel将它转换为es5语法,也就是require([''],function(){});这种语法,而不是转换成define([],function(){});这种把这个文件弄成模块了。
babel编译后是这样:out.js

define(['../../bower_components/jquery/dist/jquery'], function (_jquery) {
    'use strict';

    var _jquery2 = _interopRequireDefault(_jquery);

    function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
            default: obj
        };
    }

    (0, _jquery2.default)(document).ready(function () {
        (0, _jquery2.default)('body').append((0, _jquery2.default)('<p>hello es6 module</p>'));
    });
   );

然后我直接将out.js通过

    <script src="../require.js"></script>
    <script type="text/javascript" src="../config.js"></script>
    <script type="text/javascript" src="../js/out.js"></script>

引入,浏览器报错怎么回事?
图片描述

阅读 6.4k
3 个回答

求解,啊啊啊啊啊

你应该需要 <script src="babel-runtime.js"></script>

新手上路,请多包涵

楼主这个问题最后解决了没有,我也遇到相同的问题,用import引用jquery转amd规范,转后

define(['exports', '../libs/jquery'], function (exports, _jquery) {
实际上有效的应该是下面这样的吧
define(['exports', 'jquery'], function (exports, _jquery) {
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题