2016-11-21 175 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};