首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏vivo互联网技术

    聊聊微前端的原理和实践

    我们将子项目的入口js构建成umd格式,然后使用模块加载器远程加载,通常会使用SystemJs(不是必须)通用模块加载器来进行加载。 -- 在systemjs中注册模块 --> <script type="<em>systemjs</em>-importmap"> { "imports": { "app1": " -- 加载systemjs --> <script src="https://cdnjs.cloudflare.com/ajax/libs/<em>systemjs</em>/6.1.1/system.min.js" 先来看下: import { setPublicPath } from 'systemjs-webpack-interop' setPublicPath('app1', 2) 从名字也能看出,systemjs-webpack-interop 是针对在systemjs中使用webpack构建的bundle的场景的。

    2.5K30发布于 2020-07-27
  • 来自专栏微信小程序栏目

    微前端——single-Spa

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

    4.3K20编辑于 2022-10-06
  • 来自专栏前端博客

    前端模块化方案:前端模块化/插件化异步加载方案探索

    Javascript中模块加载器从最初小而简单lab.js/curl.js到RequireJS/sea.js、Browserify、Webpack和SystemJS一直在演进发展。 SystemJShttps://github.com/systemjs/Systemjs是一个可配置模块加载器,为浏览器和NodeJs启用动态的Es模板加载器。 ,并由SystemJS自动检测。 ,所以我认为 SystemJS 最初诞生的目的是为了做一个通用的模块加载器,在浏览器端实现对 CommonJS、AMD、UMD 等各种模块的加载。 SystemJS加载配置baseURLbaseURL提供了一种根据一个相对地址装载模块的机制。

    2.2K20编辑于 2023-05-14
  • 来自专栏西岭老湿

    微前端架构实战

    模块化解决方案 Systemjs:https://github.com/systemjs/systemjs 在微前端架构中,微应用被打包为模块,但浏览器不支持模块化,需要使用 systemjs 实现浏览器中的模块化 案例:通过 webpack 将 react 应用打包为 systemjs 模块,在通过 systemjs 在浏览器中加载模块 npm install webpack@5.17.0 webpack-cli -- 按照 systemjs 模块化的方式引入React框架应用 --> <script type="<em>systemjs</em>-importmap"> { "imports" -- systemjs 库 --> <script src="https://cdn.jsdelivr.net/npm/<em>systemjs</em>@6.8.0/dist/system.min.js">< -- systemjs 用来解析 AMD 模块的插件 --> <script src="https://cdn.jsdelivr.net/npm/<em>systemjs</em>@6.8.3/dist/extras

    4.6K00发布于 2021-04-25
  • 来自专栏京程一灯

    与 JavaScript 模块相关的所有知识点

    export 兼容性 系统模块:SystemJS 模块 SystemJS 是一个库,可以为较旧的 ES5 启用 ES6 模块语法。 SystemJS 可以将模块定义转换为对库 API 的调用——System.register: // Define SystemJS module. System.register([". 动态模块加载 SystemJS 还提供了用于动态导入的 import 函数: // Use SystemJS module with promise APIs. System.import(". Babel 与 SystemJS SystemJS 可以用作 Babel 的插件: npm install --save-dev @babel/plugin-transform-modules-systemjs 一起编译) commonJSDependencyModule2.js (与 SystemJS 一起编译) esCounterModule.js (与 SystemJS 一起编译) index.js (

    2.4K20发布于 2020-04-24
  • 来自专栏海怪的编程小屋

    【微前端】single-spa 到底是个什么鬼

    哦,是 SystemJS,诶,SystemJS 听说过,它是个啥?为啥要用 SystemJS?凭啥要用 SystemJSSystemJS 相信很多人看过一些微前端的博客,它们都会说 single-spa 是基于 SystemJS 的。错!single-spa 和 SystemJS 一点关系都没有! 所以,SystemJS 就将这一块补齐了。 这不比 SystemJS 牛逼?对的,如果不是因为要在浏览器使用 import/export,没人会用 SystemJS。 文档里才反复出现 SystemJS 的身影,而且 Github Demo 里依然是使用 SystemJS 的 importmap 机制来引入不同模块: <script type="<em>systemjs</em>-importmap

    1.5K20编辑于 2022-03-30
  • 来自专栏ops技术分享

    Angular 2 TypeScript 环境配置(下)

    /script> <script src="node_modules/reflect-metadata/Reflect.js"></script> <script src="node_modules/<em>systemjs</em> 配置 <em>SystemJS</em> --> <script src="systemjs.config.js"></script> <script> System.import('app').catch( /html> 这里值得注意的地方有: JavaScript 库: core-js 是为老式浏览器提供的填充库, zone.js 和 reflect-metadata 库是 Angular 需要的,而 SystemJS SystemJS 的配置文件和脚本,可以导入并运行了我们刚刚在 main 文件中写的 app 模块。

    1.8K20发布于 2021-07-26
  • 来自专栏海怪的编程小屋

    一个经常被忽略的 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.6K10编辑于 2022-03-30
  • 来自专栏Alan's Lab

    在 Angular 2 Component 中使用第三方 JS 库

    declare var Snap: any, mina: any; 照常使用即可 但是 Angular 2 的其他模块都是动态加载的,这里写死在 index.html 就感觉有点弱逼,所以下一步是配置 SystemJS 用上 SystemJS 如果你和我这里一样,是以 Angular 2 Quick Start 项目为基础,那么你的 SystemJS 配置文件就是项目文件夹下的 systemjs.config.js ,

    2.4K30发布于 2018-10-19
  • 来自专栏张志敏的技术专栏

    Angular2 初体验

    TypeScript 最终会被编译成 JavaScript 的模块 (commonjs/amd/system) , 因此需要一个模块加载器, 官方使用的是 SystemJS, 因此我们要安装 SystemJS 模块: npm install systemjs --save 还需要 TypeScript 编译器, gulp、 gulp-typescript 来实现 ts 文件的自动编译: npm install noImplicitAny": false }, "exclude": [ "node_modules", ".idea" ] } 现在, 在 HTML 页面中引入 Angular 的 SystemJS 模块版本, 代码如下: <script src="node_modules/<em>systemjs</em>/dist/system.js"></script> <script src="node_modules/rxjs

    2.7K20发布于 2020-08-10
  • 来自专栏前端博客

    插件化架构设计(3):前端可视化化平台插件架构-grafana实践

     {...this.props} /> : null;    }  }  return AsyncComponent;}react16.6 天赋就有懒加载 Vue  TSX 异步加载插件import SystemJS  from 'systemjs/dist/system.js';import { Component } from "vue-property-decorator";import { Component extends tsc<Props, Event> {  tempCom  = null  mounted(){    // import Comp from 'path/'    const Comp=  SystemJS.import

    1K30编辑于 2023-03-18
  • 来自专栏前端小书童

    使用Single-spa集成Vue2、Vue3、React

    添加依赖 npm i single-spa 引入systemjs(用于加载依赖及子应用js) <! -- index.html --> <script src="https://cdn.jsdelivr.net/npm/<em>systemjs</em>@6.8.3/dist/system.js"></script > <script src="https://cdn.jsdelivr.net/npm/<em>systemjs</em>@6.8.3/dist/extras/amd.js"></script> <script type="<em>systemjs</em>-importmap"> { "imports": { "@single-spa const parcelUnMounted = () => { console.log("parcel parcelUnMounted"); }; </script> 因为在主应用中引入了systemjs

    1.1K20编辑于 2023-09-02
  • 来自专栏code秘密花园

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

    我们使用的是 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.7K20发布于 2019-10-31
  • 来自专栏前端皮小蛋

    [第6期 ]每日优鲜供应链前端团队微前端改造

    我们使用的是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.5K20发布于 2020-03-03
  • 来自专栏Teobler的开发日记

    微前端拆分实践

    如果我们想要将 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.5K00发布于 2021-09-14
  • 前端模块:CJS, AMD, UMD, ESM, System 和 IIFE

    system — SystemJS 加载器的原生格式 (别名:systemjs)。IIFF— \<script> 标签引入的自执行函数。如果你想为你的应用创建一个包,你需要用到的可能就是这种。 Rollup 可以将代码打包成 SystemJS 的原生格式。

    1.3K10编辑于 2024-03-13
  • 来自专栏ops技术分享

    Angular 2 TypeScript 环境配置(上)

    systemjs.config.js 为模块加载器提供了该到哪里查找应用模块的信息,并注册了所有必备的依赖包。 它还包括文档中后面的例子需要用到的包。 2.0.0", "core-js": "^2.4.1", "reflect-metadata": "^0.1.3", "rxjs": "5.0.0-beta.12", "systemjs registry:dt/jasmine#2.2.0+20160621224255", "node": "registry:dt/node#6.0.0+20160909174046" } } systemjs.config.js

    1.8K10发布于 2021-07-26
  • 来自专栏极客编程

    AngularJS2.0 教程系列(一)

    Angular2是面向未来的科技,要求浏览器支持ES6+,我们现在要尝试的话,需要加一些 垫片来抹平当前浏览器与ES6的差异: systemjs - 通用模块加载器,支持AMD、CommonJS、ES6 等各种格式的JS模块加载 es6-module-loader - ES6模块加载器,systemjs会自动加载这个模块 traceur - ES6转码器,将ES6代码转换为当前浏览器支持的ES5 systemjs会自动加载 这个模块。 初识Angular2 写一个Angular2的Hello World应用相当简单,分三步走: 1. 据称,注解的功能就是Angular2团队向traceur团队提出的,这不是traceur的默认选项, 因此你看到,我们配置systemjs在使用traceur模块时打开注解: System.config

    3.7K10发布于 2018-09-04
  • 来自专栏前端专享

    Vite 也可以模块联邦

    http://localhost:5011/remoteEntry.js', format: 'var', from: 'webpack' } } 官方还提供了 systemjs \ esm 和 var 等不同的加载方式 host remote demo rollup/vite+esm rollup/vite+esm simple-react-esm rollup/vite+systemjs rollup/vite+systemjs vue3-demo-esm rollup/vite+systemjs webpack+systemjs vue3-demo-systemjs rollup/vite

    6.2K41编辑于 2022-09-16
  • 来自专栏前端之攻略

    Angular 2 快速起步 原

    tsconfig.json           是TypeScript的编译器配置文件      (3) typings.json           指定TypeScript 定义文件      (4) systemjs.config.js 是SystemJS的配置文件 3、安装依赖包  打开控制台输入命令npm install 安装的过程中如有有红色的警告没关系,只要确认在npm install 输出的末尾没有npm ERR!

    93210发布于 2019-04-04
领券