首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微前端——single-Spa

、概念SystemJs是一个通用的模块加载器,他能在浏览器和node环境上动态加载模块,微前端的核心就是加载子应用,因此将子应用打包成模块,在浏览器中通过SystemJs来加载模块。...在使用single-spa时,不必使用SystemJS,不过为了能够独立部署各应用,很多示例和教程会推荐使用SystemJS。<!...,它是一个npm包,它导出的函数可以帮你创建一个webpack包,这个包可以被systemjs作为浏览器内模块使用。...= 1)设置公共路径// systemjsModuleName:systemjs模块的字符串名称。...将已有模块拆分成子项目,需要将子项目打包成systemjs 能够导入的 js,这需要对项目配置做一定的改变,但是systemjs的兼容性也不好。

3.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

一个经常被忽略的 single-spa 微前端实践

这种通过 import-map 引入的库是 SystemJS 异步 JS 的一大特性,这也是 single-spa 一直强调的 JS Entry —— 通过 JS 加载微应用。...webpack 打包 虽然入口 JS 写的很简单,但是我们依然要把它打包成 SystemJS 的方式,这样才能在 index.html 里动态引入: // index.html <script type...你要说它是微应用,它也算是个微应用,但是用 SystemJS 的方式来引入,有点脱裤子放P。而且要在 index.html 里动态引入 JS,只能用 SystemJS 的方式来引入第三方库。...SystemJS 已经是非常久远的一种打包方法了,所以大家就不要扛:为什么那样不行。 注意:这里的 import-map 并不是 SystemJS 的专有特性,在一些高版本的浏览器上也是可以使用的。...只不过 SystemJS 可以处理平台使用 import-map 时的一些兼容问题。

1.1K10

每日优鲜供应链前端团队微前端改造

我们使用的是 0.21 版本的:github.com/systemjs/sy…[6]因为要动态通过 http 引入外部 js,又不影响在开发的时候使用 import、require 方法,所以找到了 systemjs...根据 systemjs 文档说明,我们只需要把子项目打成 umd 格式(umd 糅合了 AMD 和 CommonJS)的包即可动态外部加载。...经过一番调研,同样利用 systemjs 解决了这个问题 // 每个子项目自己的webpack.config.js,根据使用情况设置externals externals: { 'axios...只是在加载 index.html 时注册了这些 CDN 地址,不会直接去加载,当子项目里用到的时候,systemjs 会接管模块引入,systemjs 会去上面注册的 map 中查找匹配的模块,就再动态去加载资源...看 systemjs 源码会发现它重新定义了 require 和 define 方法,所以它能接管 externals 的外部引入过程。

1.5K20

每日优鲜供应链前端团队微前端改造

我们使用的是0.21版本的:github.com/systemjs/sy… 因为要动态通过http引入外部js,又不影响在开发的时候使用import、require方法,所以找到了systemjs来做这件事...根据systemjs文档说明,我们只需要把子项目打成umd格式(umd糅合了AMD和CommonJS)的包即可动态外部加载。...经过一番调研,同样利用systemjs解决了这个问题 // 每个子项目自己的webpack.config.js,根据使用情况设置externals externals: { 'axios'...只是在加载index.html时注册了这些CDN地址,不会直接去加载,当子项目里用到的时候,systemjs会接管模块引入,systemjs会去上面注册的map中查找匹配的模块,就再动态去加载资源。...看systemjs源码会发现它重新定义了require和define方法,所以它能接管externals的外部引入过程。

1.2K20

微前端拆分实践

如果我们想要将 url 替换为我们平时开发时候的字符串,就得依赖于 import-map,但是大部分浏览器现在都还不支持这一特性,于是我们需要引入 systemjs: how-to-use-systemjs...由于我们使用了 systemjs,为了按照它的规矩来行事,我们需要在原本的规范上修改一些代码: 首先是我们需要在开始引入 systemjs 然后将 import-map 的 type 从 importmap...改为 systemjs-importmap 接着把 es-module 的 type 从 module 改为 systemjs-module 最后是改动最大的地方,在 es-module 中我们不再使用...import 和 export 来导入导出模块,转而使用 systemjs 的语法,不过不用担心, webpack 和 rollup 等打包工具现在都支持将代码打包成 systemjs 风格,所以我们在写代码的时候还是可以按照正常规范来写...引用 [1] single-spa [2] 迭代开发中的微服务拆分 [3] 微前端——前端开发新体验 [4] systemjs

1.2K00
领券