首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用webpack-5的库时的一个问题目标:窗口

使用webpack-5的库时的一个问题目标:窗口
EN

Stack Overflow用户
提问于 2020-10-20 18:32:55
回答 1查看 257关注 0票数 0

我正在使用single-spa创建我的应用程序。当我加载微前端应用时,我没有使用SystemJS,如下所示:

代码语言:javascript
复制
export const runScript = async (url: string) => {
  return new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.src = url;
    script.onload = resolve;
    script.onerror = reject;

    const firstScript = document.getElementsByTagName('script')[0];
    (firstScript as any).parentNode.insertBefore(script, firstScript);
  });
};

const loadApp = async (appPath: string) => {
  try {
    await runScript(`/${appPath}/index.js`);
    console.log(appPath, '=', (window as any)[appPath]);
  } catch {
    console.log("load child app's javascript file error。");
  }
  return (window as any)[appPath];
};

singleSpa.registerApplication({
  name: 'app1',
  app: () => loadApp('app1'),
  activeWhen: '/app1,
  customProps: {
  },
});

所以,我在App1的webpack配置中使用了libraryTarget:'window'

代码语言:javascript
复制
devServer: {
  //...
  libraryTarget:'window'
},

当我使用webpack4时,它工作得很好。

但是当我将webpack更新为webpack -5时,它似乎有一些错误,由webpack生成的输出代码无法将正确的值设置为窗口对象。

webpack-4:works fine at webpack-4

webpack-5:nothing in the object

这是webpack五号的问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-24 15:15:45

我个人将webpack5用于我的单spa-angular组件。我有umd作为libraryTarget

代码语言:javascript
复制
 "customWebpackConfig": {
     "path": "./extra-webpack.config.js",
     "libraryName": "mylib",
     "libraryTarget": "umd"
 }

https://github.com/milobella/application-web/blob/master/spa-menu/angular.json#L36-L37

当加载脚本https://github.com/milobella/application-web/blob/master/portal/src/main.ts#L9时,我的应用程序在window

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64443344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档