2016-08-26 7 views
10

これはnode_modulesに新しいバージョンのバージョンをロードしたサーバでnpm installを実行しているときに直面した問題です。ノードモジュールの問題:モジュールごとに1つのデフォルトエクスポートが許可されます

我々は、開発の依存関係の新しいバージョンをロードnpm installをした前に、それが正常に動作するために使用

export default class DemoComponent extend React.Component { 
    render() { 
    return(
     <h1>Hello</h1> 
    ); 
    } 
} 

export default connect(
    mapStateToProps, 
    { ... } 
)(DemoComponent); 

のように見えるのモジュールを持っています。

ERRORログ:モジュールごとに許可

つだけデフォルトのエクスポート。at 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 /パス/ index.js:140:26) at PluginPass.exit(/home/workspace/node_modules/babel-plugin-transform-es2015-modules-commonjs/lib/index.js:253:29) at newFn(/ nodePath._call(/home/workspace/node_modules/babel-traverse/lib/path/context.js:76:18)の のホームディレクトリ/ workspace/node_modules/babel-traverse/lib/visitors.js:276:21) NodePath.call(/home/workspace/node_modules/babel-traverse/lib/path/context.js:48:17) at NodePath.visit(/ home/workspace/node_modules/babel-traverse/lib/path/context) .js:117:8) at TraversalContext.visitQueue(/ home/workspace/node_module TraversalContext.visitSingle(/home/workspace/node_modules/babel-traverse/lib/context.js:108:19) にある のTraversalContext.visit(/ sabel-traverse/lib/context.js:150:16) home/workspace/node_modules/babel-traverse/lib/context.js:192:19) at Function.traverse.node(/home/workspace/node_modules/babel-traverse/lib/index.js:161:17)

+4

あなたは2つの 'export default'を持つことはできません。意味がありません。それらのうちの1つは、デフォルトにする必要があります。おそらく、ストアに接続されている最新のものです。 – QoP

答えて

13

ファイル内に複数のexport defaultを使用することはできません。それは意味をなさない。あなたが複数のものをエクスポートする必要がある場合は、だから、import文は次のようになりという名前の輸出

DemoComponent.js

export class DemoComponent extends React.Component { 
    render() { 
    return(
     <h1>Hello</h1> 
    ); 
    } 
} 

export default connect(
    mapStateToProps, 
    { ... } 
)(DemoComponent); 

を使用する必要があります。

import ConnectedComponent, {DemoComponent} from './DemoComponent'; 

あなたが使用している場合export defaultあなたはあなたが望むようにあなたの変数に名前をつけることができますが、という名前のexportは同じ変数nあなたが輸出するものと同じです。

More about export syntax

ところで、あなたはあなたの例のタイプミスを持っています。それはextendsではなく、extend

+0

ありがとう、Dmitriy Nevzorov。私はそれについてhttp://www.2ality.com/2015/12/babel-commonjs.htmlここで読む。 –

+0

私には分かりませんが、なぜ 'npm_monules'を再インストールするとエラーになるのですか?あなたは本当に 'デフォルトの接続をエクスポートする'必要がありますか?なぜ「DemoComponent」はありませんか? –

+0

は 'connect'が[react-redux HOCコンポーネント](https://github.com/reactjs/react-redux/blob/master/docs/api)であるためです。md#connectmapstatetoprops-mapdispatchtoprops-mergeprops-options)あなたの 'DemoComponent'を還元状態に接続します。 'DemoComponent'は状態にアクセスすることができません –

関連する問題