节点模块问题:每个模块只允许一个默认导出

Abh*_*kam 10 node-modules ecmascript-6 reactjs babeljs npm-install

这是我们npm install在服务器上遇到的一个问题,它为node_modules加载了一组新的版本.

我们有一个看起来像的模块

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

export default connect(
  mapStateToProps,
  { ... }
)(DemoComponent);
Run Code Online (Sandbox Code Playgroud)

在我们npm install加载新版本的开发依赖项之前,它曾经工作正常.

错误日志:

每个模块只允许一次默认导出.在FilePath.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)在newFn(/ home/workspace /)的PluginPass.exit(/home/workspace/node_modules/babel-plugin-transform-es2015-modules-commonjs/lib/index.js:253:29) NodePath.all上的NodePath._call(/home/workspace/node_modules/babel-traverse/lib/path/context.js:76:18)中的node_modules/babel -traverse/lib/visitorss.js:276:21) 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(/ ho)我/工作区/ node_modules /巴别-横动/ LIB/index.js:161:17)

Dmi*_*rov 14

您不能export default在文件中使用多个.这没有意义.如果您需要导出多个东西,则需要使用命名导出

DemoComponent.js

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

export default connect(
  mapStateToProps,
  { ... }
)(DemoComponent);
Run Code Online (Sandbox Code Playgroud)

所以import语句看起来像这样:

import ConnectedComponent, {DemoComponent} from './DemoComponent';
Run Code Online (Sandbox Code Playgroud)

使用时export default,可以根据需要命名变量,但使用命名导出时,必须使用与导出的变量名相同的变量名.

更多关于导出语法

顺便说一句,你的例子中有一个错字.这extends,不extend