将组件AMD与Webpack捆绑为Require.js

时间:2019-03-27 05:54:15

标签: reactjs webpack backbone.js require

由于某种原因,我们想在Backbone视图上加载React组件(使用Require.js)。这个React组件是使用Webpack 4.x捆绑的。

在Webpack配置中捆绑期间,我们已启用AMD / UMD模式。

...
...
module.exports = {
  entry: {
    componentName: ['./components/componentName/index.js']
  },
  amd: {
    componentName: true
  },

  output: {
    path: path.resolve(__dirname, './componentName'),
    filename: '[name].js',
    libraryTarget: 'umd',
    library: 'componentName',
    umdNamedDefine: true
  },

  externals: {
    'react': 'react',
    'react-dom': 'react-dom',
    'react-dom-server': 'react-dom-server'
  },
  ...

现在,我们正尝试在Backbone + Require.js应用程序中使用捆绑的React组件,在该应用程序中,如下所示加载React和ReactDOM(已启用UMD)

define([
  'jquery',
  'underscore',
  'backbone',
  'react',
  'react-dom',
  'componentName'
], function($, _, Backbone, React, ReactDOM, componentName) {

   ...

   render: function() {
      console.log(React, ReactDOM, componentName)
   }

   ...
});

在这里,componentName总是以undefined的形式出现,而React和ReactDOM正在正确加载。任何人都可以帮助了解我在这里缺少什么吗?

0 个答案:

没有答案