webpack 主入口
- 读取 options、判断是否为 multiCompiler
- 判断是否为 watch 模式
- createCompiler 创建出
compiler
对象
1 | /** |
compiler
对象1 | /** |
compiler
由于自带回弹效果,在某些内部需要拖动的情况下,用户体验不好解决办法
在需要滚动的容器上添加 css 样式
1 | .xx { |
vite 2.2.4 以上版本使用 element UI 会出现该报错cannot read property '$isServer'
原因是因为 2.3.0 版本的 esbuild 编译 elementUI 表现不一致(说到底还是 elementUI 不支持 esModule 的问题)
解决方案可见该 issue: https://github.com/vitejs/vite/issues/3370
1. vite 降级为 2.2.4. vite reinstall -> 2.2.4
2. 使用该插件https://www.npmjs.com/package/esbuild-plugin-vite-element-ui(但是该插件目前有坑,可见作者github)
3. 将 vue、vue-router、vuex 和 elementUI 改为 cdn 方式引入
类似一些常见的 v-for 未提供 key 之类的 warn 会被 vite-plugin-vue2 认作是异常抛除,导致编译失败
我给作者提了 pr:https://github.com/underfin/vite-plugin-vue2/pull/89
如import App from '@/App'
会报错import App from './App'
正常import App from '@/App.vue'
正常
是一个 bug,作者已经修复,待 merge
解决方案和详情可见该 issue:https://github.com/vitejs/vite/issues/3532
TODO 未完待续
有一说一,vite 用起来真的爽,但是目前确实还有不少坑,不过在这飞快的热更新速度面前,不值一提!真香!
数据结构,操作系统,计算机网络和计算机组成原理),外加编译原理和图形学以及软件工程和软件测试。
以上是大前端的基础课程,可以按需所取。如果不学 node,可以省去操作系统和计算机组成原理。
如果不用各类预编译 less 等可以不学编译原理。
如果不用各类 three. js 等图形框架可以不学图形学。
如果不用做单元测试,可以不学软件测试……
作用域是程序源代码中定义变量的区域
作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限
JavaScript 是词法作用域
执行上下文
创建执行上下文有两步
函数有一个属性 prototype,指向这个函数的原型对象
这个对象是 new 该函数产生的对象的原型
如
1 | function Person(age) { |
p1 和 p2 的原型就是 Person.prototype
原型:对象创建的时候,会通过__proto__
属性关联另一个对象,每个对象都会从原型中继承属性
每个原型都有一个constructor
属性,执行关联的构造函数即Person
原型链指的是,在找对象属性时,如果在当前对象找不到会顺着对象的原型去不断往上找
不同技术栈,不能
代码管理-> 打包构建- > CI&CD -> 测试 OA -> 发布上线
gitlab
eslint
snonarQube
webpack
xcode
android studio
metro
jenkins
docker
jest
Junit5
appium
做平台而不是做工具
从工具链到平台的整合
为了打通流程,做一个工程化平台
统一研发规范
如果只是文档形式,落地难
使用静态代码扫描
工程化理解
从你打开编辑器敲下一次字母开始,到最终产物上线,下线的,所要经历过的一系列流程都属于工程化
需要使用getStaticPaths
返回一个对象,其中path
包含动态路由所有的可能值
```js
export async function getStaticPaths() {
const paths = getAllPostIds()
return {
paths,
fallback: false,
}
}
1 |
|
创建/pages/404.js
预渲染可以带来更好的性能和 SEO。
静态生成不代表无需数据
使用 getStaticProps
如果你不做需要预先渲染的数据,可使用 csr
不需要 seo 的部分可以使用 csr