开课吧全栈架构师第16期2020完结webpack day_第1页
开课吧全栈架构师第16期2020完结webpack day_第2页
开课吧全栈架构师第16期2020完结webpack day_第3页
开课吧全栈架构师第16期2020完结webpack day_第4页
开课吧全栈架构师第16期2020完结webpack day_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ckinclude:include:path.resolve(dirname,优化resolve.modules modules:[path.resolve(dirname,}}优化resolve.alias

aliasalias:"@":path.join(dirname,"./pages"),react:path.resolve("react-dom":)}优化resolve.extensions//公司有//使用

上(减少 <!<!DOCTYPE<html<metacharset="UTF-<metaname="viewport"content="width=device-width,initial-<metahttp- patible" <div<script w 的方式去(如import$from'jquery'),并且希望不会对其进行打包,此时就可以配置externals。wmodule.exports=externals:{//jquery通过script引入之后,全局中即有了jQuery变量'jquery':'jQuery'}}publicPath:}',//指定存放JS文件的CDNcss$$npminstalllessless-loader--save-{test:use:["style-loader","css-loader","less-} npmnpmipostcss-loaderautoprefixer-modulemodule.exports={[overrideBrowserslist:["last2versions",]body{div y:flex;border:1pxredsolid;}}{test:include:path.resolve(dirname,"./src"),use:[{loader:"css-loader",options:{}]如果不做抽取配置,我们的css是直接打包进js里面的,我们希望能单独生成cssnpmnpminstallmini-css-extract-plugin-const tractPlugin=require("mini-css-extract-{test:/\.scss$/,use:[//"style-loader",//不再需要style-loader,用 "css-loader""css-loader"编译"sass-loader"编译]plugins:new filename:"css/[name]_[contenthash:6].css",chunkFilename:"[id].css"]压缩借助optimize-css-assets-wck-npminstallcssnano-npmioptimize-css-assets- ck-plugin-constOptimizeCSSAssetsPlugin=require("optimize-css-assets-newcssProcessorrequire("cssnano"//引入cssnanocssProcessorOptions:ments:{removeAll:true}压缩借助html-wck-ckPlugin({tle:"京东商城 te:"./index.html",filename:"index.html",minify:{压缩HTMLments:true,//移除HTML中的注释collapseWhitespacetrue删除空白符与换行符minifyCSS:true//压缩内联css}developmentvsProductionnpminstallnpminstallck-merge-constconstmerge=constcommonConfig=require(" constdevConfig={}module.exports= ck-dev-server--config ck--config }借助cross-npmnpmicross-env-"test":"cross-envNODE_ENV=testck--configmodule.exports=(env)=>{if(env&&duction){returnreturn}}scripts:"--treeCsstreenpmnpmiglob-allpurify-csspurifycss-ck--save-constPurifyCSS=require('purifycss-w constglob=require('glob-all')清除无用cssPurifyCSS({//要做CSSTreeShakingpath.resolve(dirname,'./src/*.html'),//请注意,我们同样需要对html文件进行treeshakingpath.resolve(dirname,JStreeexportconstaddexportconstadd=(a,b){returna+exportconstminus=(a,b)=>{returna-b;import{add}fromadd(1,optimization:usedExports:true//}//正常对所有模块进行tree或者在数组里面排除不需要treeshakingimportimport_from假如我们引入一个 的工具库,体积为1mb,而我们的业务逻辑代码也有1mb,那么打包出来的体积小会在 基于{splitChunks:chunks:"all所有的chunks{splitChunks:chunks:'async',//对同步initial,异步async,所有的模块有效allminSize:30000,//最小尺寸,当模块大于30kbmaxSize:0,//minChunks:1,//打包生成的chunk文件最少有几个chunk了这个模块maxAsyncRequests:5,//最大异步请求数,默认5maxInitialRequests:ameDelimiternametrue,//打包后的名称,除了布尔值,还可以接收一个函数functioncacheGroups:{//缓存组vendors:test:/[\\/]node_modules[\\/]/,name:"vendor"要缓存的分隔出来的chunk名称priority:-10//缓存组优先级数字越大,优先级越高

chunks:"initial",//必须三选一:"initial"|"all"|"async"(test:/react|lodash正则规则验证,如果符合就提取chunk,minSizeminSize:minChunks:{minChunks:priority:-reuseExistingChunk:true//可设置是否重用该}}}}}}Scopeexportdefault o,//importstrfrom o.js的内容和index.js会分////module.exports={{concatenateModules:}npmnpmispeed-measure-ck-plugin-constSpeedMeasurePlugin=require("speed-measure-constsmp=newconstconfig= }module.exports=npmnpminstallyzer-constyzerPlugin= module.exports=merge(baseW ckConfig,{new ]百科 我们在index.js中使用了第库react、react-dom,接下来,我们先对这两个库先进行打包constconstpath=require("path");const{DllPlugin}=require("wmodule.exports={mode:entry:react:["react","react-dom"]//!output:path:path.resolve(dirname,"./dll"),filename:"[name].dll.js",library:plugins:new//manifest.jsonpath:path.join(dirname,"./dll","[name]-//定义打包的公共vendorname:]"dev:dll":"dev:dll":ck--confignpmnpmrunnewmanifest:path.resolve(dirname,"./dll/react-<!DOCTYPE<!DOCTYPE<html<metacharset="UTF-8"<metaname="viewport"content="width=device-width,initial-scale=1.0"/><metahttp- patible"content="ie=edge" <linkhref="css/main_e2bf39.css"<div<scripttype="text/javascript"<scripttype="text/javascript"安装一个依赖npmiadd-asset-html-wck-plugin,它会将我们打包后的dll.js文件注入到我们生成的index.html中.在wck.base.config.js文件中进行更改。newnewfilepath:path.resolve(dirname,'../dll/react.dll.js')//对应的dllnpmnpmrun用HardSourceW ckPlugin,一样的优化效果,但是使用却及其简单constconstckPlugin=require('hard-source-constplugins=[new]行,子进程处理完后再将结果发送给主进程。从而发挥多核CPU电脑的威力。npmi-DvarhappyThreadPool=HappyPack.ThreadPool({size:5//consthappyThreadPool=HappyPack.ThreadPool({size:os.cpus().length//w rules:[{test:/\.jsx?$/,/node_modules/,use:{//一个loader对应一个loader:}]{test:in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论