这是在服务器上执行npm install
时遇到的问题,该服务器为node_modules加载了新的版本集。
我们有一个看起来像
的模块export default class DemoComponent extend React.Component {
render() {
return(
<h1>Hello</h1>
);
}
}
export default connect(
mapStateToProps,
{ ... }
)(DemoComponent);
在我们加载新版本的开发依赖项npm install
之前,它曾经工作正常。
错误日志:
每个模块只允许一次默认导出。 在File.buildCodeFrameError(/home/workspace/node_modules/babel-core/lib/transformation/file/index.js:431:15) 在NodePath.buildCodeFrameError(/home/workspace/node_modules/babel-traverse/lib/path/index.js:140:26) 在PluginPass.exit(/home/workspace/node_modules/babel-plugin-transform-es2015-modules-commonjs/lib/index.js:253:29) at newFn(/home/workspace/node_modules/babel-traverse/lib/visitors.js:276:21) 在NodePath._call上(/home/workspace/node_modules/babel-traverse/lib/path/context.js:76:18) 在NodePath.call(/home/workspace/node_modules/babel-traverse/lib/path/context.js:48:17) 在NodePath.visit(/home/workspace/node_modules/babel-traverse/lib/path/context.js:117:8) 在TraversalContext.visitQueue(/home/workspace/node_modules/babel-traverse/lib/context.js:150:16) 在TraversalContext.visitSingle(/home/workspace/node_modules/babel-traverse/lib/context.js:108:19) 在TraversalContext.visit(/home/workspace/node_modules/babel-traverse/lib/context.js:192:19) 在Function.traverse.node(/home/workspace/node_modules/babel-traverse/lib/index.js:161:17)
答案 0 :(得分:13)
您不能在文件中使用多个export default
。这没有意义。如果您需要导出多个内容,则需要使用命名导出
<强> DemoComponent.js 强>
export class DemoComponent extends React.Component {
render() {
return(
<h1>Hello</h1>
);
}
}
export default connect(
mapStateToProps,
{ ... }
)(DemoComponent);
因此import语句如下所示:
import ConnectedComponent, {DemoComponent} from './DemoComponent';
当您使用export default
时,您可以根据需要为变量命名,但使用命名导出,您必须使用与导出的变量名称相同的变量名称。
顺便说一句,你的例子中有一个拼写错误。它是extends
,而不是extend