Реагировать проекта
WebPack 1,14
Импорт внешних компонентов, WebPack сборки повторяющихся модулей
Вопрос:
Moda и MODB не в проекте. Это внешние компоненты.
импорт Moda в MODB
импорта Moda и MODB в index.js
WebPack построить
bundle.js имеет две одинаковые модули Moda.
каталог проекта
- вне проекта
- активы
bundle.js
react.js
- JS
entry.js
+ node_modules
.babelrc
index.html
package.json
webpack.config.js
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
}
}
};
.babelrc
{
"presets": ["es2015","stage-0","react"]
}
запись.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')
);
каталог компонент
- вне компонент
- мод
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
Есть два же Moda в bundle.js:
компоненты будут использоваться во многих проектах.
Компоненты должны быть найдены в независимом каталоге.
Как решить проблему повторения?