2016-11-21 95 views
1

我已经研制开发了小包装here的ES6模块的WebPack的transpilation后,不会导出模块

src版本我有一个出口声明:

export class Select extends React.Component { 
    render() { 
     return (
     ...the component 
     ) 
    } 
} 

当我使用这个组件这种形式,我可以像这样导入:

import {Select} from 'select-react-redux';

然而,当我捆绑在p使用webpack安装到lib目录,我得到一个输出文件,我希望它具有与原始文件相同的内容,但ES5代替ES6。

捆绑文件包含: var Select = exports.Select = function (_React$Component) {} 这意味着Select组件应该对我可用,但事实并非如此。

任何帮助将非常感激。

+0

“Select没有从中导出”。 ---请显示它到底是什么。 (因为它出口它只是罚款http://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-2&code=export%20class%20Select%20extends%20React.Component%20%7B %0D%0A%20%20%20%20render()%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20(%0D%0A%20%20% 20%20%20%20%20%20%20%3Cdiv%3Efoo%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%20%20)%0D%0A%20 %20%20%20%7D%0D%0A%7D) – zerkms

+0

该文件的捆绑版本已捆绑并最小化,如下所示:https://github.com/adamgajzlerowicz/ReactSelect/blob/master/lib/index。 js – Adam

+0

请仅提供**未缩小的相关部分**。 – zerkms

回答

1

package.json,我看你的package's entry point的定义是:既然你已经在src/index.js ES6代码,你需要一个合适的装载机使用包,因为它是

"main": "src/index.js", 

。但通过你的webpack配置检查,我发现你已经有lib/index.js的编译代码。所以,你需要指定包的入口点为:

"main": "lib/index.js" 
1

导出报表应该是下列任何

export default class Select extends React.Component { 
    render() { 
     return (
     ...the component 
     ) 
    } 
} 

//import 

import Select from 'select-react-redux' 

class Select extends React.Component { 
     render() { 
      return (
      ...the component 
      ) 
     } 
    } 

export { 
    Select, 
} 

//import 
import {Select} from 'select-react-redux' 

希望这有助于中!

0

谢谢你的回答。他们都是正确的,但他们没有为我解决问题。我花了两天的时间来解决这个问题,我确信这是一个webpack问题。使用相同的源文件,但使用巴贝尔编译它们模块导出正确。

babel src/ -d lib/

同时我也有这样的导出选项,在index.js文件lib文件夹的根。通过这种方式,当我添加更多组件时,它将更加模块化。

import {Select} from './Select'; 
export {Select as Select};