Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Webpack 2 UMD库对象为空_Javascript_Webpack_Webpack 2 - Fatal编程技术网

Javascript Webpack 2 UMD库对象为空

Javascript Webpack 2 UMD库对象为空,javascript,webpack,webpack-2,Javascript,Webpack,Webpack 2,我正在尝试在Webpack中编写一个UMD库,它被分解成多个可以手动加载的文件。这不是我的偏好,但这是需求的一部分 我已经有了CommonChunkPlugin,它可以将所有库和文件提取到它们自己的可加载文件中。以下是网页包配置文件: let plugins = [ new webpack.optimize.CommonsChunkPlugin({ name: 'gm-components', filename: '[name].js', minChunks(module, coun

我正在尝试在Webpack中编写一个UMD库,它被分解成多个可以手动加载的文件。这不是我的偏好,但这是需求的一部分

我已经有了CommonChunkPlugin,它可以将所有库和文件提取到它们自己的可加载文件中。以下是网页包配置文件:

let plugins = [ new webpack.optimize.CommonsChunkPlugin({
  name: 'gm-components',
  filename: '[name].js',
  minChunks(module, count) {
    let context = module.context;
    let chunk = module.chunks && module.chunks[0];
    return ( chunk && chunk.name == 'components.js' ) ||
     ( context && context.match(/preact|prop-types/i) );
    }
 }),
new webpack.optimize.CommonsChunkPlugin({
  name: 'gm-dates',
  filename: '[name].js',
  chunks: ['dates.js', 'gm-misc.js', 'gm-cart.js'],
  minChunks(module, count) {
    let context = module.context;
    let chunk = module.chunks && module.chunks[0];
    return ( chunk && chunk.name == 'dates.js' ) ||
      ( context && context.match(/supercal|fecha/i) );
    }
})];

module.exports = {
  entry: {
    "components.js":       './src/js/components.js',
    "dates.js":            "./src/js/dates.js",
    "gm-misc.js":          "./src/js/misc.js",
    "gm-cart.js":          "./src/js/cart.js"
  },
  output: {
    path: path.resolve(__dirname, 'assets'),
    filename: '[name]',
    library: 'GMComponents',
    libraryTarget: 'umd',
    umdNamedDefine: true,
  }
};
src
中的所有文件都是非常独立的,但是我希望有一个通用的组件构造函数。在
src/js/components.js
中,我有以下代码:

import { render as domRender} from 'react-dom';
import React, { createElement } from 'react';

export var components = {};
export var render = (ele, name, props, callback) => {
  let klass = components[name];
  let comp = createElement(klass, props || {});
  return domRender(comp, ele, callback);
};

不幸的是,我在
window.GMComponents
中得到的只是一个空对象。CommonChunkPlugin是否使我无法包含通用的函数?

我认为每个脚本都会覆盖该对象,包括,actual。很可能我的做法完全错误,只需要不将其放入配置的库部分,而是以手动方式进行。这是一个棘手的问题。但是,从逻辑上讲,如果您希望将对象公开到全局范围(
在本例中为window
),您的
库目标应该是
this
或将对象附加到全局范围的任何配置