当前位置: 首页 > news >正文

个人网站怎么做视频尚品网站建设

个人网站怎么做视频,尚品网站建设,中国网站设计师,兰州网站建设100对于使用联邦模块的项目会有两个依赖#xff0c;一个是远程模块#xff0c;一个是共享模块。上一篇文章解释了远程模块的加载和安装并初始化共享作用域。consumes则是共享模块的解决方案#xff0c;用于在运行时加载并安装依赖的共享模块。 为什么叫consumes#xff1f;我…对于使用联邦模块的项目会有两个依赖一个是远程模块一个是共享模块。上一篇文章解释了远程模块的加载和安装并初始化共享作用域。consumes则是共享模块的解决方案用于在运行时加载并安装依赖的共享模块。 为什么叫consumes我理解是因为共享模块的获取是在__webpack_require__.I中完成的而consumes只是使用__webpack_require__.S中的数据来安装对应模块。所以consumes是在消费__webpack_require__.S中的数据。 __webpack_require__S.default {react: {version: {get() {}, ...}}}以上信息并没有在__webpack_require__.m上所以当前环境并不能使用共享作用域中的内容 var versionLt (a, b) {// see webpack/lib/util/semver.js for original codeaparseVersion(a),bparseVersion(b);for(var r0;;){if(ra.length)return rb.lengthu!(typeof b[r])[0];var ea[r],n(typeof e)[0];if(rb.length)returnun;var tb[r],f(typeof t)[0];if(n!f)returnonnf||(sf||un);if(o!nu!ne!t)return et;r} }var findSingletonVersionKey (scope, key) {var versions scope[key];return Object.keys(versions).reduce((a, b) {return !a || (!versions[a].loaded versionLt(a, b)) ? b : a;}, 0); };var satisfy (range, version) {// see webpack/lib/util/semver.js for original codeif(0 in range){versionparseVersion(version);var erange[0],re0;r(e-e-1);for(var n0,i1,a!0;;i,n){var f,s,girange.length?(typeof range[i])[0]:;if(nversion.length||o(s(typeof(fversion[n]))[0]))return!a||(ug?ie!r:g!r);if(us){if(!a||u!g)return!1}else if(a)if(gs)if(ie){if(f!range[i])return!1}else{if(r?frange[i]:frange[i])return!1;f!range[i](a!1)}else if(s!gn!g){if(r||ie)return!1;a!1,i--}else{if(ie||sg!r)return!1;a!1}elses!gn!g(a!1,i--)}}var t[],ot.pop.bind(t);for(n1;nrange.length;n){var urange[n];t.push(1u?o()|o():2u?o()o():u?satisfy(u,version):!o())}return!!o(); }var getSingletonVersion (scope, scopeName, key, requiredVersion) {var version findSingletonVersionKey(scope, key);if (!satisfy(requiredVersion, version)) typeof console ! undefined console.warn console.warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));return get(scope[key][version]); };var get (entry) {entry.loaded 1;return entry.get() };// 给入参函数注入依赖项共享作用域scope封装的是scope的获取 // 因为scope可能在初始化中也可能初始化完成 var init (fn) (function(scopeName, a, b, c) {var promise __webpack_require__.I(scopeName);// 等待共享作用域初始化完成if (promise promise.then) return promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], a, b, c));return fn(scopeName, __webpack_require__.S[scopeName], a, b, c); });var loadSingletonVersionCheckFallback /*#__PURE__*/ init((scopeName, scope, key, version, fallback) {if(!scope || !__webpack_require__.o(scope, key)) return fallback();return getSingletonVersion(scope, scopeName, key, version); });var installedModules {}; var moduleToHandlerMapping {webpack/sharing/consume/default/react/react?5e40: () (loadSingletonVersionCheckFallback(default, react, [1,17,0,2], () (Promise.all([__webpack_require__.e(vendors-node_modules_react_index_js), __webpack_require__.e(node_modules_object-assign_index_js)]).then(() (() (__webpack_require__(/*! react */ ../node_modules/react/index.js))))))),webpack/sharing/consume/default/react-dom/react-dom: () (loadSingletonVersionCheckFallback(default, react-dom, [1,17,0,2], () (Promise.all([__webpack_require__.e(vendors-node_modules_react-dom_index_js), __webpack_require__.e(webpack_sharing_consume_default_react_react)]).then(() (() (__webpack_require__(/*! react-dom */ ../node_modules/react-dom/index.js))))))),webpack/sharing/consume/default/react/react?7071: () (loadSingletonVersionCheckFallback(default, react, [4,17,0,2], () (__webpack_require__.e(vendors-node_modules_react_index_js).then(() (() (__webpack_require__(/*! react */ ../node_modules/react/index.js))))))) }; // no consumes in initial chunks var chunkMapping {src_bootstrap_js: [webpack/sharing/consume/default/react/react?5e40,webpack/sharing/consume/default/react-dom/react-dom],webpack_sharing_consume_default_react_react: [webpack/sharing/consume/default/react/react?7071] }; __webpack_require__.f.consumes (chunkId, promises) {if(__webpack_require__.o(chunkMapping, chunkId)) {chunkMapping[chunkId].forEach((id) {if(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);var onFactory (factory) {installedModules[id] 0;__webpack_require__.m[id] (module) {delete __webpack_require__.c[id];module.exports factory();}};var onError (error) {delete installedModules[id];__webpack_require__.m[id] (module) {delete __webpack_require__.c[id];throw error;}};try {var promise moduleToHandlerMapping[id]();if(promise.then) {promises.push(installedModules[id] promise.then(onFactory)[catch](onError));} else onFactory(promise);} catch(e) { onError(e); }});} }chunkMapping中存着chunk对应共享模块的依赖而moduleToHandlerMapping中存着共享模块的获取方式通过方法__webpack_require__.f.consumes入参这两个数据就能解析chunk依赖的模块并对模块进行安装。 (loadSingletonVersionCheckFallback(default, react, [1,17,0,2], fallback)) 这一行表达的是在共享作用域default上寻找版本为1.17.0.2的react如果找不到使用自带的模块fallback。 var init (fn) (function(scopeName, a, b, c) {var promise __webpack_require__.I(scopeName);// 等待共享作用域初始化完成if (promise promise.then) return promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], a, b, c));return fn(scopeName, __webpack_require__.S[scopeName], a, b, c); });var loadSingletonVersionCheckFallback /*#__PURE__*/ init((scopeName, scope, key, version, fallback) {if(!scope || !__webpack_require__.o(scope, key)) return fallback();return getSingletonVersion(scope, scopeName, key, version); });init方法用于初始化对应共享作用域共享作用域加载完成后将相关作用域信息作为入参调用init的入参函数。 拿到作用域信息后调用方法getSingletonVersion(scope, scopeName, key, version) getSingletonVersion function getSingletonVersion(scope, scopeName, key, requiredVersion) {...return get(scope[key][version]); }var get (entry) {entry.loaded 1;return entry.get(); };get方法的返回值会作为方法onFactory的入参 var onFactory (factory) {installedModules[id] 0;__webpack_require__.m[id] (module) {delete __webpack_require__.c[id];module.exports factory();} };onFactory执行完成后__webpack_require__.m上就会出现对应的模块信息。到这里共享模块也安装完成了。 等待chunk src_bootstrap_js文件加载完成外部依赖准备完成共享模块准备完成后chunk src_bootstrap_js 则表示加载完成可以开始执行业务代码了。 名字的翻译 在源码中使用的名字是 import React from ‘react’而通过webpack编译后变成了”webpack/sharing/consume/default/react/react?5e40”并且在__webpack_require__.S上的名字也是react这些是怎么关联起来的呢 该问题同样存在于远程模块加载场景中。 ”webpack/sharing/consume/default/react/react?5e40”是怎么和共享作用域中的”react”关联起来的 在上面源码中 var moduleToHandlerMapping {webpack/sharing/consume/default/react/react?5e40: () (loadSingletonVersionCheckFallback(default, react, [1,17,0,2], () (Promise.all([__webpack_require__.e(vendors-node_modules_react_index_js), __webpack_require__.e(node_modules_object-assign_index_js)]).then(() (() (__webpack_require__(/*! react */ ../node_modules/react/index.js))))))), }表示模块webpack/sharing/consume/default/react/react?5e40需要在共享作用域default中的1.17.0.2版本的react这里这两个名字就关联起来了。 源码中的 import React from ‘react’ 是怎么和 webpack/sharing/consume/default/react/react?5e40 关联起来的 源码中的 import React from react经过编译变成 var react__WEBPACK_IMPORTED_MODULE_0__ __webpack_require__(/*! react */ webpack/sharing/consume/default/react/react?5e40); var react__WEBPACK_IMPORTED_MODULE_0___default /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);这样源码中的名字 ”react”就和webpack/sharing/consume/default/react/react?5e40关联起来了。
http://www.zqtcl.cn/news/109205/

相关文章:

  • 忻府网站建设手机上做网站
  • 长宁长沙网站建设域名网站
  • 太原自助建站系统公司网站建设合同书
  • 购买深圳网站定制开发重庆学校网站建设
  • 站长素材音效下载重庆市建设工程信息网综合网
  • 网络营销专业就业方向wordpress插件dx-seo
  • 义乌有什么企业网站吗大良企业网站建设
  • 外链网站推荐几个html5标准网站建设
  • 博星卓越营销网站设计古镇镇建网站公司
  • 3. 是网站建设的重点网站后台添加关键词
  • 免费手机网站模板下载百度网站建设北京
  • 爱用建站建设网站的报告
  • 网站关键字被百度收录网站开发asp.net
  • 内部卷网站怎么做的h5在线编辑器
  • 搞定设计网站做的图怎么下载不了网站死链接怎么删除
  • 济南企业建站怎么样在pc端预览手机网站
  • c 手机网站开发模板最好的建站网站
  • 防城港市网站建设成功网站建设案例
  • 成都公司网站制作公司实验一 电子商务网站建设与维护
  • 即墨区城乡建设局网站300m空间够用吗 wordpress
  • 成都软件开发培训机构7个湖北seo网站推广策略
  • 嘉定企业网站建设深圳网站制作费用
  • 外贸网站有必要吗wordpress远程保存图片
  • 苏州吴中网站建设wordpress中文版安装教程
  • wordpress 网站静态页面赶集网网站建设分析
  • 伊春网站开发大型网站建设兴田德润专业
  • 温州平阳县营销型网站建设榆林做网站
  • 沽源网站建设娄底网站建设工作室
  • 商场网站 策划医疗网站是否全部需要前置备案
  • 电商网站开发实训心得wordpress网络验证