Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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和create React app创建的React小部件仅公开webpackJsonpclient_Javascript_Reactjs_Webpack - Fatal编程技术网

Javascript 从webpack和create React app创建的React小部件仅公开webpackJsonpclient

Javascript 从webpack和create React app创建的React小部件仅公开webpackJsonpclient,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我有一个react应用程序,它是从create react app(我们称之为app-1)创建的,我需要在其他团队拥有的另一个web应用程序中使用它。商定的方法是将React应用程序捆绑为库,并将其部署到CDN,然后通过脚本标记将其用于其他项目 我做了以下几件事。 1.在root中创建了一个webpack.config.js文件(没有从CRA中弹出),并使用了以下配置 const path = require('path'); const glob = require('glob'); mod

我有一个react应用程序,它是从create react app(我们称之为app-1)创建的,我需要在其他团队拥有的另一个web应用程序中使用它。商定的方法是将React应用程序捆绑为库,并将其部署到CDN,然后通过脚本标记将其用于其他项目

我做了以下几件事。 1.在root中创建了一个webpack.config.js文件(没有从CRA中弹出),并使用了以下配置

const path = require('path');
const glob = require('glob');

module.exports = {
  entry: {
    'bundle.js': glob
       .sync('build/static/?(js|css)/?(main|2).*.?(js|css)')
       .map(f => path.resolve(__dirname, f)),
     },
  mode: 'production',
  output: {
    filename: 'app.js',
    library: 'APP-1',
    libraryTarget: 'umd',
  },
 module: {
   rules: [
   {
     test: /\.css$/,
     use: ['style-loader', 'css-loader'],
   },
 ],
 },
};
该条目读取通过运行npm run build(CRA命令)生成的绑定js(main.js和2.hash.js)和css文件。其思想是将它们组合成一个文件,然后作为lib输出

然后将生成的捆绑包加载到CDN中,并将其添加为另一个项目中脚本标记的源。现在,在另一个项目中,我可以访问窗口对象上的“APP-1”名称空间——但奇怪的是,它只公开webpackJsonpclient对象

例如:console.log(“模块:”,APP-1)或console.log(window.APP-1)

不确定发生了什么,也不知道如何进行调试。下面是index.js文件

从“React”导入React;
从“react dom”导入{render,unmountComponentAtNode};
从“/App”导入{App};
//ReactDOM.render(,document.getElementById('root'));
导出常量init=()=>{
log('这是来自APP-1应用程序');
返回{
挂载(){
const el=document.getElementById('app-1');
渲染(,el);
},
卸载(){
const el=document.getElementById('app-1');
如果(el)卸载组件节点(el);
},
};
};