- 删除对小米 OPPO 的打包工具的集成
- 在 IDE 切换路径时,才编译该路径对应的页面
- 将 glob 检测到的 png 等图片资源在 app.js 中用 import 引入,使得 webpack 自动处理资源
- 更完善的自动化测试方案
参考IDE显示模拟器传过来ws数据的逻辑,在测试中显示图片对比?
/Users/11104760/Documents/new-os/quickapp-ide
IDE仓库 https://gitlab.vmic.xyz/qafed/quickapp-ide
extensions/multi-device-previewer/frontend/src/helper/screen.js
- 将 Vue、小程序转为快应用
- 快应用 playground
- Vite, Svelte 原理
- 预处理 node_odules 里面的 cjs 包成 esm,可以使用 @rollup/plugin-commonjs ,避免每次 rollup 都做转换
- 支持 vue 的 dsl 及 composition-api
- 小程序、Vue、React
- Rust
- 算法、Leetcode
// 1. 简化 getDepHash 的查找链路
// 2. 优化 if (lockfilePath) {} 及上面的 lockfilePath ? fs$l.readFileSync(lockfilePath, 'utf-8') : '';
function getDepHash(config, ssr) {
// 第一部分:获取配置文件初始化content
const lockfilePath = lookupFile(config.root, lockfileNames);
let content = lockfilePath ? fs$l.readFileSync(lockfilePath, 'utf-8') : '';
// 第二部分:检测是否存在patches文件夹,增加content的内容
if (lockfilePath) {
//...
const fullPath = path$o.join(path$o.dirname(lockfilePath), 'patches');
const stat = tryStatSync(fullPath);
if (stat?.isDirectory()) {
content += stat.mtimeMs.toString();
}
}
// 第三部分:将配置添加到content的后面
const optimizeDeps = getDepOptimizationConfig(config, ssr);
content += JSON.stringify({
mode: process.env.NODE_ENV || config.mode,
//...
});
return getHash(content);
}
简化 sortedPluginsCache
export function createPluginHookUtils(
plugins: readonly Plugin[],
): PluginHookUtils {
// sort plugins per hook
const sortedPluginsCache = new Map<keyof Plugin, Plugin[]>()
function getSortedPlugins(hookName: keyof Plugin): Plugin[] {
if (sortedPluginsCache.has(hookName))
return sortedPluginsCache.get(hookName)!
const sorted = getSortedPluginsByHook(hookName, plugins)
sortedPluginsCache.set(hookName, sorted)
return sorted
}
...
}
搜索 sync 关键字,改成异步写法
避免对 package.json 的重复读写