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 知道需要下载源码包的方式有两种:

  1. 命令行传参: 安装时指定 --save-source 参数以下载该依赖包的源码。

     lcpkg install github.com/lc-ui/lc-design --save-source
    
  2. 设置依赖包属性: 以命令行传参方式安装依赖包后会给 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)
    

文章版权归作者所有,未经许可不得转载。

问题反馈

对此文章有疑问?你可以点击 这里 反馈