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

网站建设 招标公告上海未成年人思想道德建设网站

网站建设 招标公告,上海未成年人思想道德建设网站,东仓建设网站,双语公司网站系统下载这里写目录标题介绍先说结论分析解决介绍 无意间看到一个关于export与exprot default对比的话题, 于是对二者关于性能方面,有了想法,二者的区别,仅仅是在于写法吗? 于是,有了下面的测试。 先说结论 太长…

这里写目录标题

  • 介绍
  • 先说结论
  • 分析
  • 解决


介绍

无意间看到一个关于exportexprot default对比的话题,

于是对二者关于性能方面,有了想法,二者的区别,仅仅是在于写法吗?

于是,有了下面的测试。


先说结论

太长不看版

在导出时,对于包含多个变量的文件,尽量使用export分开导出,

而不是使用export default一股脑儿的放对象里导出来。

good✔:

export const str = 'hello export';export const sum = (a, b) => a + b;export const count = 1;

bad❌:

const str = 'hello export default';
const sum = (a, b) => a + b;
const count = 1;export default {str,sum,count
}

但是,这并不是最终的方案,在项目中,可以通过代码分割的方式,

对引用文件进行单独打包。


分析

下面从打包的Tree Shaking方面,分析这么写的原因。

测试目录:

- src- index.js- counter.js
- webpack.config.js

先来看export下的文件内容:

// counter.js
export const str = 'hello export';
export const sum = (a, b) => a + b;
export const count = 1;
// index.js
// 只使用了其中的str变量import { str } from './counter';console.log(str);
// webpack.config.jsconst path = require('path');module.exports = {mode: 'development',entry: './src/index.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'index.js',clean: true},optimization: {usedExports: true}
}

执行命令npx webpack,查看打包结果:
在这里插入图片描述
这里给出了注释:
/* unused harmony exports count, sum */,表示对未使用到的

导出内容count sum进行了标记,在上线打包时,这些将被去除。


再来看export default的内容:

// counter.jsexport default {str: 'hello export default',sum: (a, b) => a + b,counter: 1
}
// index.jsimport counter from './counter.js';console.log(counter.str);
// webpack.config.jsconst path = require('path');module.exports = {mode: 'development',entry: './src/index.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'index.js',clean: true}
}

从打包结果来看,webpack无法识别到其中有哪些被未被使用,

所以在实际打包中,并不能触发Tree Shaking功能,无法将未使用代码去除。
在这里插入图片描述


解决

根据以上结论,在实际使用时,应该多使用export做导出。

但是,必须如此吗?

也并不是。

在实际开发中,可以通过Code Split的方式,将counter.js文件

单独打包,形成独立文件。有什么文件要使用其中的方法,

就直接去调用即可。

这里使用的是webpack5内置的SplitChunksPlugin分割插件。

文档:

https://www.webpackjs.com/guides/code-splitting/

配置:

https://www.webpackjs.com/plugins/split-chunks-plugin/
// webpack.config.jsmodule.exports = {// ...optimization: {splitChunks: 'all' }
}

http://www.yayakq.cn/news/7961/

相关文章:

  • 完成一份网站建设前期规划方案阿里云商标注册
  • 学校网站群建设 ppt2021年加盟好项目
  • 标志设计网站推荐做外贸的国际网站有哪些内容
  • 服装网站页面设计网站开发费税率是多少
  • 凡科网站代理登录入口岱岳区网站设计
  • 建网站 行业 销售额西安网站开发外包公司有
  • 织梦网站熊掌号改造怎么做房子装修网站
  • 自己搭建网站服务器网店运营计划书范文
  • 上海市建设协会考试网站东莞网页制作招聘网
  • 市政建设招标网站有哪些二次开发的意义
  • 济南企业网站开发拖拽式网站建设
  • 全国建设注册中心网站电商网站怎么做搜索
  • 找做网站的上什么appwordpress 搜索框 位置
  • 网站月付服务器郑州效果图设计公司
  • 东莞市网站建设公司企业网站seo名称
  • 东莞网站建设+旅游软件自学网站
  • 网站关键词优化建议网络服务提供者收集和使用
  • 换个网站对seo有什么影响VPS如何做网站服务器
  • 唐山网站公司建站android最新版本下载
  • 魔鬼做交易网站宁波seo服务推广
  • 如何提高网站的搜索排名百度网站入口特效词
  • 怎样免费给自己的公司做网站做一直播网站要多少钱
  • 拼多多网站建设网站改版 大量旧页面
  • 自己做网站seo优化如何做汽车的创意视频网站设计
  • 对网站建设的维护阿里云怎么建设网站
  • 保定网站建设报价律师网站模版
  • 前端网站制作教程wordpress文件下载站
  • 全屏网站是什么意思网站验证图标
  • 免费网站空间有哪些简述网络营销与传统营销的整合
  • 学校要建个网站应该怎么做个人网站 摄影展示