これは、node_modulesの新しいバージョンのセットをロードするサーバーでnpm install
を実行中に直面した問題です。
次のようなモジュールがあります
export default class DemoComponent extend React.Component {
render() {
return(
<h1>Hello</h1>
);
}
}
export default connect(
mapStateToProps,
{ ... }
)(DemoComponent);
開発依存関係の新しいバージョンをロードするnpm install
を実行する前は、以前は正常に機能していました。
エラーログ:
モジュールごとに許可されるデフォルトのエクスポートは1つだけです。 File.buildCodeFrameError(/home/workspace/node_modules/babel-core/lib/transformation/file/index.js:431:15)at NodePath.buildCodeFrameError(/ home/workspace/node_modules/babel-traverse/lib/path/index.js:140:26)at PluginPass.exit(/home/workspace/node_modules/babel-plugin-transform-es2015-modules-commonjs/lib/index.js:253:29)at newFn(/ home/workspace/NodePath._call(/home/workspace/node_modules/babel-traverse/lib/path/context.js:76:18)at NodePath.call(/のnode_modules/babel-traverse/lib/visitors.js:276:21) nodePath.visit(/home/workspace/node_modules/babel-traverse/lib/path/context.js:117:8)にあるhome/workspace/node_modules/babel-traverse/lib/path/context.js:48:17) TraversalContext.visitQueue(/home/workspace/node_modules/babel-traverse/lib/context.js:150:16)at 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)at Function.traverse.node(/ ho me/workspace/node_modules/babel-traverse/lib/index.js:161:17)
1つのファイルで複数のexport default
を使用することはできません。それは意味がありません。複数のものをエクスポートする必要がある場合は、named exportを使用する必要があります
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
を使用すると、変数に任意の名前を付けることができますが、named exportを使用すると、変数名と同じ変数名を使用する必要がありますエクスポートします。
ところで、あなたの例ではタイプミスがあります。 extends
ではなくextend
です