2016-12-30 12 views
-1

は、プロジェクト
WebPACKの1.14
インポート外部コンポーネント、WebPACKのビルドリピートモジュールは

質問に反応:
MODAおよびMODBがプロジェクトに含まれていません。これらは外部コンポーネントです。
bundle.jsを構築WebPACKの
をindex.jsするMODB
輸入MODAおよびMODBに
インポートモーダは2つの同じMODAモジュールを持っています。

プロジェクトディレクトリ

- アウトプロジェクト
        - 資産
                    bundle.js
                    react.js
        - JS
                    entry.js
        +
      012 node_modules      package.json
              index.htmlを
              .babelrc
              webpack.config.js
   

{ 
    "presets": ["es2015","stage-0","react"] 
} 
.babelrc           yarn.lock

package.json依存

"dependencies": { 
    "react": "^15.2.1", 
    "react-dom": "^15.2.1", 
}, 
"devDependencies": { 
    "babel-core": "^6.10.4", 
    "babel-loader": "^6.2.4", 
    "babel-preset-es2015": "^6.9.0", 
    "babel-preset-react": "^6.11.1", 
    "babel-preset-stage-0": "^6.5.0", 
    "webpack": "^1.14.0" 
} 

webpack.config.js

var webpack = require('webpack'); 
var path = require('path'); 
module.exports = { 
entry:[ 
    './js/entry.js' 
], 
output: { 
    path: __dirname + '/assets/', 
    publicPath: "/", 
    filename: 'bundle.js' 
}, 
module: { 
    loaders:[ 
     { 
      test: /\.jsx?$/, 
      exclude: /node_modules|assets/, 
      loader: 'babel' 
     } 
    ] 
}, 
externals: { 
    "react": 'React', 
    'react-dom': 'ReactDOM' 
}, 
resolve: { 
    extensions: ['', '.js', '.jsx'], 
    alias: { 
     'component': 'E:/experiment/out-component' //import external components 
    } 
} 
}; 

エントリー。JS

import React from 'react'; 
import ReactDOM from 'react-dom'; 

import ModA from 'component/mod/ModA.js'; 
import ModB from 'component/mod/ModB.js'; 

ReactDOM.render(
    <div> 
     <h1>webpack</h1> 
     <ModA/> 
     <ModB/> 
    </div>, 
    document.querySelector('.wrapper') 
); 

コンポーネントディレクトリ

- アウト成分
        - MOD
                    ModA.js
                    ModB.js
        + node_modules
              .babelrc
              package.json
              yarn.lock

ModA.js

const ModA =() => <div>组件A</div>; 
export default ModA; 

ModB.js

import ModA from 'component/mod/ModA.js'; 
const ModB =() => { 
    return (
     <div> 
      <h3>组件B引入组件A</h3> 
      <ModA/> 
     </div> 
    ); 
} 
export default ModB; 

CLIの実行のWebPACK
取得bundle.js

First ModA PrintScreen

Second ModA PrintScreen

コンポーネントは、多くのプロジェクトで使用されます:10はbundle.jsに2つの同じモーダがあります。
コンポーネントは独立したディレクトリにあります。

どのように繰り返しの問題を解決するには?

答えて

関連する問題