LCPkg 0.3.0 开发日志
2020年09月12日 · 2212 字 · 阅读
开发计划:
- 补充单元测试和 CI 构建脚本
- 采用 airbnb 编码规范格式化全部代码
- 添加 install 命令
- 添加 uninstall 命令
- 添加 link 命令
- 添加 export 命令
- 支持使用
pkg@version
指定包的版本 - 移动包目录到用户主目录下,以让所有项目共用同一包目录
- 更新自述文档
2020-10-06
已补充单元测试,测试覆盖率达到 68%。
2020-09-26
LCFinder 的 scss 代码引入了 LCDesign 的 scss 文件,针对这种场景该如何设计目录结构?
考虑到源码与 CPU 架构和构建模式无关,可以将它们放到 installed/src 目录中,那么 installed 目录结构会变成这样:
installed/
content/
+ source/
+ LCUI/
+ include/
+ src/
+ ...
+ lc-design/
+ include/
+ src/
+ scss/
+ stylesheets/
+ _variables.scss
+ _functions.scss
+ ...
x64-windows/
bin/
debug/
bin/
darknet.dll
LCUI.dll
LCDesign.dll
yaml.dll
sqlite3.dll
lib/
darknet.lib
LCUI.lib
LCUIMain.lib
LCDesign.lib
sqlite3.lib
leveldb.lib
yaml.lib
include/
lib/
x86-windows/
由于项目用到了依赖包的源码,在运行 lcpkg install
时就需要额外下载源码包,而让 lcpkg 知道需要下载源码包的方式有两种:
-
命令行传参: 安装时指定
--save-source
参数以下载该依赖包的源码。lcpkg install github.com/lc-ui/lc-design --save-source
-
设置依赖包属性: 以命令行传参方式安装依赖包后会给 lcpkg.json 中的依赖包信息追加
sourceRequired: true
属性,用于标记该依赖包在安装时需要额外下载源码包,以后运行lcpkg install
时就会自动下载源码包。
2020-09-21
lcpkg link
链接的是打包输出目录,在每次构建完项目后需要跑 lcpkg pack
才能更新该目录的内容,如果把它写到项目的生成后事件里的话会增加构建等待时间,因为 lcpkg pack
创建压缩包耗时有好几秒,为解决这个问题,可以从 lcpkg pack
拆分出一个只收集文件但不创建压缩包的命令,那如何命名该命令?prepack?collect?还是给 lcpkg pack
加个 --collect-only
选项?
感觉 lcpkg export --filter build
有点鸡肋,用它还得添加在构建前事件里添加命令行,不用它的话也就是多改一次库包含路径配置,并没有达到简化项目构建配置的目的。
2020-09-14
在 LCFinder 中使用本地开发版的 LCUI 和 LCDesign 的库文件时需要手动跑命令把它们打包然后在 LCFinder 目录中安装它们,每次重新构建 LCUI 时都得跑一次命令,很麻烦,为此,需要给 lcpkg 增加 link 命令,其功能与 npm link 相似,总而言之就是有如下待办事项:
- 添加全局目录,默认路径为:
~/.lcpkg
- 在全局目录中创建 packages 和 downloads 目录,不再在项目目录中建立它们
- 更改
lcpkg install
等相关命令的工作目录为全局目录 - 添加 link 命令用于将当前目录的包链接到全局目录
- 添加 unlink 命令用于解除包链接
2020-09-12
最近在升级 LCFinder 项目依赖时遇到了以下问题:
- 链接库目录路径格式不一致,Debug 的路径比 Release 多了一层 Debug 目录,编译配置改起来麻烦
- 需要手写命令行复制程序依赖的资源文件和 dll 文件到工作目录中,比较麻烦
目前想到的解决方案有两种:
-
添加 export 命令,每次运行时手动指定目标目录。
# 导出构建时依赖的文件 lcpkg export --filter build --mode debug --arch x64 ./vendor/windows/x64/debug # 导出运行时依赖的资源文件、 dll 文件到工作目录中 lcpkg export --filter runtime --mode debug --arch x64 ./app
VS 配置中添加生成前事件命令行:
lcpkg export --filter build --mode $(Configuration) --arch $(PlatformTarget) ./vendor/$(PlatformTarget)-windows-$(Configuration)
生成后事件命令行:
lcpkg export --filter runtime --mode $(Configuration) --arch $(PlatformTarget) $(OutDir)
-
添加 env 命令,初始化时设置目录,以后无需再指定。
# 初始化环境,设置工作目录为 ./app,依赖库目录为 ./vendor lcpkg env init ./app ./vendor # 更新环境,将依构建时和运行时依赖的文件分别复制到 ./app 和 ./vendor 目录中 lcpkg env update --arch x64 --mode release
VS 配置中添加生成前事件命令行:
lcpkg env update --mode $(Configuration) --arch $(PlatformTarget)
文章版权归作者所有,未经许可不得转载。