gpt4 book ai didi

javascript - babel 5 和 babel 6 之间发生了什么导致我导入的模块脱离对象的默认属性而存在?

转载 作者:行者123 更新时间:2023-11-30 16:22:42 25 4
gpt4 key购买 nike

更新到 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 changes how it exports default 中讨论过。 .

而不是

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 - babel 5 和 babel 6 之间发生了什么导致我导入的模块脱离对象的默认属性而存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34521623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com