React Webpack创建具有单独的React的包

问题描述 投票:1回答:1

有可能配置webpack不编译束文件内的反应吗? 我希望在一页中有更多的React应用程序,并且我只想加载一次React库以获取最小的大小。 怎么做到这一点?

reactjs build webpack production-environment
1个回答
0
投票

在同样的情况下,我创建了最终捆绑包,所有小的“应用程序”+ React捆绑一次。

// components/index.js (webpacks entry point)
require("expose?React!react");
require("expose?MarketProductListing!./MarketProductListing");
require("expose?ProductDetail!./ProductDetail");
require("expose?MarketSearch!./MarketSearch");

然后,我通过<script/>标签包含捆绑的JS。

<script src="js/components.bundle.js"></script>

现在,我可以访问JS中的React, MarketProductListing, ...组件,并在需要的地方渲染它们。

如您所见,我对Webpack使用expose-loader

Webpack配置

var path = require('path');
var webpack = require('webpack');

const js_dir = path.join(__dirname, 'src');

module.exports = {
  devtool: 'eval',
  entry: {
    components: path.join(js_dir, 'components'),
  },
  output: {
    path: js_dir,
    filename: '[name].bundle.js'
  },
  plugins: [
    new webpack.ProvidePlugin({
      'es6-promise': 'es6-promise',
      'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch'
    })
  ],
  module: {
    loaders: [
      { test: /\.js$/, loaders: ['babel'] }
    ]
  },
  resolve: {
    extensions: ['', '.js', '.json']
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.