WEB 十二月 24, 2021

webpack常用loader

文章字数 4.4k 阅读约需 4 mins.

什么是loader?

对于webpack来说,默认只能打包处理JS文件,或者说JS模块,但是webpack作为模块打包工具,需要打包的模块肯定不仅仅只有JS模块,还有:图片模块,CSS模块等等;但是webpack...

查看全文

WEB 十二月 16, 2021

负载均衡:SLB+nginx搭配,以及nginx

文章字数 16k 阅读约需 14 mins.

转自:https://juejin.im/entry/56fc91f8128fe1005942872b

仅作个人备份,浏览请看原文

用了阿里云负载均衡(SLB),nginx做什么用?

SLB的主要作用的是负载均衡,同样nginx也可以做。如果只是单纯考虑负载均衡,阿里云的SLB优越性更高。

但nginx可以做的更多,如反向代理、HTTP服务器,灵活性更高。同时用了nginx和SLB,除了反向代理,nginx还承担了一个静态站点的HTTP服务。

nginx

能够支持 50,000 个并发连接数的响...

查看全文

WEB 十一月 19, 2021

webpack5-note

文章字数 112k 阅读约需 1:42

为什么需要 loader

webpack是一个用于现代 JavaScript 应用程序的静态模块打包工具。内部通过构建依赖图管理模块之间的依赖关系,生成一个或多个 bundle 静态资源。

但是 webpack 只能处理 JavaScript 、Json 模块。应用程序除了JavaScript 、Json 模块以外还有图片、音频、字体等媒体资源、less、sass 等样式文件等非 js 代码的模块。所以需要一种能力,将非 js 资源模块解析成能够被 webpack 管理的模块。这也就是 loader...

查看全文

WEB 十一月 18, 2021

process.env.NODE_ENV是什么

文章字数 23k 阅读约需 21 mins.

在node中,有全局变量process表示的是当前的node进程。
process.env包含着关于系统环境的信息,但是process.env中并不存在NODE_ENV这个东西。

NODE_ENV是一个用户自定义的变量,在webpack中它的用途是判断生产环境或开发环境

为了查看 process的基本信息,我们可以在文件夹中 新建一个process.js文件,在里面加一句代码console.log(process);然后进入该文件夹,执行node process.js可以在命令行中打印如下...

查看全文

WEB 十一月 18, 2021

ES6与CommonJs区别

文章字数 871 阅读约需 1 mins.

ESM (es6 模块)

ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。
因为ESM是静态化的,所以在运行前的编译阶段就可以确定模块关系,从而进行一些模块之间的操作,比如treeshaking等等

ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入

一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。

export语...

查看全文

WEB 十一月 18, 2021

AMD, CMD, CommonJS和UMD

文章字数 21k 阅读约需 19 mins.

Javascript模块化

在了解这些规范之前,还是先了解一下什么是模块化。

模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理。模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式。可以想象一个巨大的系统代码,被整合优化分割成逻辑性很强的模块时,对于软件是一种何等意义的存在。对于软件行业来说:解耦软件系统的复杂性,使得不管多么大的系统,也可以将管理,开发,维护变得“有理可循”。

还有一些对于模块化一些专业的定义为:模...

查看全文

WEB 十一月 17, 2021

node中__dirname与__filename的区别

文章字数 3.7k 阅读约需 3 mins.

先写个例子目录为E:\web\test\abc.js,其中abc.js为我们写的测试代码,在Node中./和process.cwd()效果相同,./有特殊情况
./就是执行node命令的路径,也就是工作路径,在哪运行的node index.js或者说在哪运行npm run build的路径 (特殊情况:在 require() 中使用 ./ 时,这时的路径就会是含有 require() 的脚本文件的相对路径。)

__dirname

dirname 总是指向被执行 js 文件的绝对路径,也就是说你...

查看全文

WEB 十一月 16, 2021

reduxSaga为什么不能用async await实现

文章字数 29k 阅读约需 26 mins.

为什么 saga 不能用 async await 来实现呢?

想必开始接触 redux-saga 的同学都有这个疑问,为啥为要用 generator 的写法,用 async await 行不行。

1
2
3
4
5
6
7
8
9
10
11
12
import { put, call } from 'redux-saga/effects'
import { loginService } from '../service/request'

function* login(action...
查看全文

WEB 十月 12, 2021

服务端渲染与客户端渲染

文章字数 3.1k 阅读约需 3 mins.

首先,介绍一下 SPA、SEO、SSR 三者的区别

  • SPA(single page application) 单页面应用,是前后端分离时提出的一种解决方案。
    优点:页面之间切换快;减少了服务器压力;
    缺点:首屏打开速度慢,不利于 SEO 搜索引擎优。
  • SEO(search engine optimization)搜索引擎优化,利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。
    我们之前说 SPA 单页面应用,通过 ajax 获取数据,这就难保证我们的页面能被搜索引擎收到。并且有一些搜...
查看全文

WEB 十月 07, 2021

Http缓存-协商与强制缓存

文章字数 6.7k 阅读约需 6 mins.

通常根据是否需要向服务器重新发起HTTP请求去确认缓存是否有效将缓存分为强制缓存和协商缓存

强制缓存

强制缓存就是直接从浏览器缓存查找该结果,并根据结果的缓存规则来决定是否使用该缓存的过程。

  • 不存在该缓存结果和标识,强制缓存失效,则直接向服务器发起请求(跟第一次发起请求一致)
  • 存在缓存结果和标识,但结果已失效,强制缓存失效,则使用协商缓存
  • 存在缓存结果和标识,并且结果未失效,强制缓存生效,直接返回该结果

控制强制缓存的字段分别是ExpiresCache-Control,其中Cache-Control...

查看全文
加载更多
0%