로 분할 라이브러리, 공급 업체 및 응용 프로그램은 내가 lodash, 순간, Axios의, 이 반응을 포함하여 타사 모듈을 많이 사용하는 다양한 응용 프로그램을 상상해보십시오.웹팩 2 : 다른 파일
모든 것을 묶음 끝에 묶으면 크기가 1MB보다 커집니다. 별도로
- lodash
- 별도로 순간
- 다른 모든 node_modules을 공급 업체에 저장됩니다 : 나는 그것을 저장하는 것을 방법으로 내 라이브러리 팩을 웹팩을 원한다 번들
- 응용 프로그램의 코드는 별도의 파일 에 저장됩니다.
CommonsChunkPlugin과 다른 방법으로 시도했지만 원하는 결과를 얻지 못했습니다.
내 문제를 설명하기 위해 예를 들어 저장소를 준비했습니다: https://github.com/PavelPolyakov/webpack-react-bundles
웹팩 항목 부분은 (여기
entry: {
lodash: 'lodash',
moment: 'moment',
app: [
'react-hot-loader/patch',
'webpack-dev-server/client?http://localhost:3001',
'webpack/hot/only-dev-server',
'./app/index.js']
}
conf/webpack.base.config.js): 모듈 분리하기 위해 노력하고, 생산 설정 (conf/webpack.production.config.js)입니다 :
을plugins: [
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production')
}
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module) {
// this assumes your vendor imports exist in the node_modules directory
return module.context &&
module.context.indexOf('node_modules') !== -1;
}
}),
new webpack.optimize.UglifyJsPlugin({
minimize: true,
compress: {
warnings: true
}
})]
이 경우 순간과 로다시는 여전히 판매 업체에 표시됩니다. 또는 번들. 나는 그들을 두 개의 묶음으로 묶고 싶다.
모든 의견을 감사드립니다.
두 개의 CommonsChunkPlugin 인스턴스를 사용하고 있는데, 하나는'name : "lodash"로, 다른 하나는'moment'로 사용 했습니까? 또는''lodash '', 'webpack' '', [docs] (https://webpack.js.org/guides/code-splitting-libraries/)와 같이. – opatut
예, 시도했지만 도움이되지 않습니다. 또는 잘못된 방식으로 시도했습니다. –