老项目使用的是 Vue 2 + ElementUI ,而且项目中又集成很多个子系统。考虑到项目越来越庞大,构建时间也越来越长,再加上技术上难于升级,所以引入了 qiankun 的解决方案。
大致思路是主应用使用 Vue 3 + ElementPlus ,然后将老项目直接作为一个子应用,后期再从老项目中将子系统一个一个的拆出作为子应用。
qiankun 的 API 不多,看起来不难,但在使用中也遇到了不少的问题,本文记录了目前遇到的一些问题。
现在很多项目都使用了第三方UI组件库,如: Element UI 、 Ant Design Vue 、 View UI 、 Vuetify 等等。引入的方式分为 完整引入 和 按需引入 两种方式。
正则表达式中的 (?:pattern)
、(?=pattern)
、(?!pattern)
、(?<=pattern)
和 (?<!pattern)
,容易忘记这里做个笔记。
最近开了「前端禾惠」微信公众号,准备把博客文章发布到微信公众号中。在公众号中添加图文时发现编辑器是不支持 markdown 语法的。于是找到了墨滴,在墨滴网站输入 markdown 内容,就可以直接复制内容并粘贴到微信公众号(相当于在这里将 markdown 转换成含样式的 HTML)。
原错误信息:Unable to resolve path to module './show'. eslint(import/no-unresolved)
今天项目进行生产构建时突然就报错了,报错的地方是我引入的第三方库 ant-design-vue 和 bytemd ,错误大概如下:
node_modules/ant-design-vue/lib/vc-select/Select.d.ts:175:21 - error TS2304: Cannot find name 'EventHandlerNonNull'.
onPopupScroll?: EventHandlerNonNull;
node_modules/bytemd/lib/index.d.ts:1:20 - error TS2307: Cannot find module './editor.svelte' or its corresponding type declarations.
import Editor from './editor.svelte';
最近刚接触 monorepo ,记录一下目前用到的一些脚本命令。
假设最终需要的项目结构如下:
my_project
│
├── node_modules
├── package.json
├── packages
│ ├── a
│ ├── b
│ └── c
注意:下面所有的命令都是在 my_project 目录下执行的。
注意:workspace 是 npm v7.x 新增的功能,所以需要确保你的 npm 版本大于等于 7.0
/* eslint-disable */
var a = 100;
console.log(a);
/* eslint-enable */