babel 5和babel 6之间发生的事情导致我导入的模块存在于对象的默认属性之外
What happened between babel 5 and babel 6 to cause my imported module to exist off of the default property of an object?
更新到babel 6后,如下所示:
containers/
game.js
action-creators/
actionCreators.js
asyncActionCreators.js
index.js
actionCreators.js有以下代码:
export function x(){}
export function y(){}
asyncActionCreators.js有以下代码:
export const j = () => (a, b) => {}
export const k = () => (a, b) => {}
index.js包含以下代码:
import _ from 'lodash';
import * as actions from './actionCreators';
import * as asyncActions from './asyncActionCreators';
const Actions = _.assign(actions, asyncActions);
export default Actions;
在game.js中,我有以下代码:
import * as Actions from './../action-creators';
行动评估为:
{
__esModule: true
default: Object
__proto__: Object
}
有人能解释一下吗?
这与预期的一样。您的index.js
文件仅导出了default
导出。
import * as Actions from './../action-creators';
将导入所有命名导出和默认导出,但您没有任何命名导出。您的方法在Babel 5中确实有效,但根据ES6规范中导入到导出的映射,它是无效的。这已经在Babel 6中讨论了它如何导出默认值。
而不是
import _ from 'lodash';
import * as actions from './actionCreators';
import * as asyncActions from './asyncActionCreators';
const Actions = _.assign(actions, asyncActions);
export default Actions;
你应该做的是
export * from './actionCreators';
export * from './asyncActionCreators';
它基本上从文件中获取所有命名导出并从索引中导出。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何在javascript上使用flak-babel进行翻译
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 用于检查数组中是否存在元素的javascript自定义方法
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 正在将事件处理程序添加到不存在的类
- 是否存在React Native“;WEB代码安全防护”;
- 一个密码测试程序,如果存在空格,它会提醒用户
- 验证会话中是否存在对象's数组
- javascript如果图像不存在don't加载它
- 如何查找值是否存在于二叉树中
- IE9的HTML5 Canvas getImageData()函数存在问题
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 将webpack和babel与父项目目录中的文件一起使用
- CORS-服务器端cookie没有保存在chrome浏览器上
- 检查是否存在使用chrome扩展的javascript库
- babel 5和babel 6之间发生的事情导致我导入的模块存在于对象的默认属性之外
- 使用Babel编译的文件中存在重复的声明