热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Babel生成的AMD模块

如何解决《使用Babel生成的AMD模块》经验,求助如何解决?

我有一个基于AMD模块的现有应用程序,并使用require.js捆绑东西.我需要将一堆es2015反应代码作为AMD模块带入这个应用程序并使用Babel将它们变成AMD模块.这是我的babel配置

 babel:
  options:
    sourceMap: false
    plugins: [ 'transform-class-properties', 
               'transform-object-rest-spread', 
               'transform-es2015-modules-amd']
    presets: [ 'react','es2015']
  dist: 
    files: [{
      expand: true
      cwd: "src/foo/jsx"
      src: "**/*.js"
      dest: "build/foo/js/"
      ext: ".js"
      }] 

结果如下工作并生成AMD模块,例如myreact.js模块:

define(["exports", "react", "prop-types"], function (exports, _react, _propTypes) {
  "use strict";
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  var _react2 = _interopRequireDefault(_react);
  var _propTypes2 = _interopRequireDefault(_propTypes);
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      default: obj
    };
  }
  var REQUIRED_FIELD_SYMBOL = "*";
  function Blah(props) {
    ...
  }
  exports.default = Blah;
});

现在,当我在我的其他AMD模块中使用这个AMD模块时,它是未定义的

define([..., 'foo/js/myreact'], function(..., RM) {

RM.Blah <---- this is undefied
RM.default <---- still undefied

生成的代码不返回导出.

另外,我注意到在我的require.js生成的bundle.js中,react模型显示如下:

define('foo/js/myreact',["exports", "react", "prop-types"], 
   function (exports, _react, _propTypes){
..
}

我不是在require.js配置文件中的任何地方定义导出,所以我应该如何设置导出?

基本上,我应该如何在其他AMD模块中使用我的反应AMD模块?


推荐阅读
author-avatar
禾漾啊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有