第5節05webpack打包bundle原理分析與實現課程評價_第1頁
第5節05webpack打包bundle原理分析與實現課程評價_第2頁
第5節05webpack打包bundle原理分析與實現課程評價_第3頁
第5節05webpack打包bundle原理分析與實現課程評價_第4頁
第5節05webpack打包bundle原理分析與實現課程評價_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

WWck- ck?成chunkbundle-wck在執?npxwck進?打包后,都?了什么事情(function(modules)varinstalledModules= ck_require(moduleId){if(installedModules[moduleId]){return}varmodule=(installedModules[moduleId]{i:moduleId,l:false,exports:{}module.l=true;returnmodule.exports;} wck_require((wck_require.s="./index.js":function(module,{'//importafrom"./a";\n\nconsole.log(" oword");\n\n\n//#"./a.js":function(module,{'//importafrom"./a";\n\nconsole.log(" oword");\n\n\n//#"./b.js":function(module,{'//importafrom"./a";\n\nconsole.log(" oword");\n\n\n//#}?概的意思就是,我們實現了?個wck_require來實現??的模塊化,把代碼都緩存在es6,jsx,處理需要編譯-》瀏覽器能夠執?constconstfs=constfenximokuai=filename=>constcontent=fs.readFileSync(filename,"utf-8");@babel/parser:npminstall@babel/parser--constfs=constparser=constfenximokuai=filename=>constcontent=fs.readFileSync(filename,"utf-constAst=parser.parse(content,{sourceType:"module"npminstall@babel/traverse--constconstfs=require("fs");constpath=require("path");constparser=consttraverse=constfenximokuai=filename=>constcontent=fs.readFileSync(filename,"utf-constconstAst=parser.parse(content,{sourceType:"module"constdependencies={ImportDeclaration({node}){}constparser=//修改dependencies為對象,保 constdependencies=constnewfilename="./"+path.join(path.dirname(filename),dependencies[node.source.value]=constconstbabel=const{code}=babel.transformFromAst(Ast,null,{presets:["@babel/preset-env"]returnreturnconstconstfs=require('fs');constpath=require('path');constparser=consttraverse=require('@babel/traverse').default;constbabel=require('@babel/core');constconstyser=(filename)=>constcontent=fs.readFileSync(filename,'utf-8');constast=parser.parse(content,{sourceType:constdependencies={};traverse(ast,{ImportDeclaration({node})constdirname=constnewFile='./'+path.join(dirname,node.source.value);dependencies[node.source.value]=newFile;}const{code}=babel.transformFromAst(ast,{presets:["@babel/preset-{filename,}}constmoduleInfo=constconstfs=require('fs');constpath=require('path');constparser=consttraverse=require('@babel/traverse').default;constbabel=require('@babel/core');constyser=(filename)=>constcontent=fs.readFileSync(filename,'utf-8');constast=parser.parse(content,{sourceType:constdependencies={};traverse(ast,{ImportDeclaration({node})constdirname=constnewFile='./'+path.join(dirname,node.source.value);dependencies[node.source.value]=newFile;}const{code}=babel.transformFromAst(ast,{presets:["@babel/preset-{filename,}}constmakeDependenciesGraph=(entry){constentryModule=module constgraphArray=[entryModule];for(leti=0;i<graphArray.length;{constitem=graphArray[i];const{dependencies}=item;if(dependencies){for(letjin{graphArray.push(}}}constgraph={};graphArray.forEach(item=>{graph[item.filename]{dependencies:item.dependencies,code:item.code}return}constgraghInfo=makeDependenciesGraph('./src/index.js');constconstfs=require('fs');constpath=require('path');constparser=consttraverse=require('@babel/traverse').default;constbabel=require('@babel/core');constmoduleyser=(filename)=>constcontent=fs.readFileSync(filename,'utf-8');constast=parser.parse(content,{sourceType:constdependencies={};traverse(ast,{ImportDeclaration({node})constdirname=constnewFile='./'+path.join(dirname,node.source.value);dependencies[node.source.value]=newFile;}const{code}=babel.transformFromAst(ast,{presets:["@babel/preset-{filename,}}constmakeDependenciesGraph=(entry){constentryModule=module constgraphArray=[entryModule];for(leti=0;i<graphArray.length;{constitem=graphArray[i];const{dependencies}=item;if(dependencies){for(letjin{graphArray.push(}}}constgraph={};graphArray.forEach(item=>{graph[item.filename]{dependencies:item.dependencies,code:item.code}return}}constgenerateCode=(entry)=>constgraph=JSON.stringify(makeDependencies

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論