Closed4

Nim (Nimble) で依存パッケージをプロジェクトごとに分ける

Lafixier RafinantokaLafixier Rafinantoka

ディレクトリ構成

tree
#> .
#> ├── nimble_test.nimble
#> ├── src
#> │   ├── nimble_test
#> │   │   └── submodule.nim
#> │   └── nimble_test.nim
#> └── tests
#>     ├── config.nims
#>     └── test1.nim
Lafixier RafinantokaLafixier Rafinantoka

準備

local deps modeに切り替え, ./nimbledepsにパッケージリストをダウンロード

-l--localdepsでも良い。

nimble refresh -l
#>   Warning: Using project local deps mode
#> Downloading Official package list
#>    Success Package list downloaded.

実行後のディレクトリ構成

tree
#> .
#> ├── nimble_test.nimble
#> ├── nimbledeps
#> │   ├── packages_official.json
#> │   ├── packages_temp.json
#> │   └── pkgs
#> ├── src
#> │   ├── nimble_test
#> │   │   └── submodule.nim
#> │   └── nimble_test.nim
#> └── tests
#>     ├── config.nims
#>     └── test1.nim

nim.cfgにパッケージのディレクトリを記載する

このままではVS Codeなどのエディタの拡張機能がcannot open file: hoge等とエラーを吐くので, ./nim.cfgを作成しそこにパッケージのディレクトリを記載する。

nim.cfg
nimblePath = "nimbledeps/pkgs"

記載後のディレクトリ構成

tree
#> .
#> ├── nim.cfg
#> ├── nimble_test.nimble
#> ├── nimbledeps
#> │   ├── packages_official.json
#> │   ├── packages_temp.json
#> │   └── pkgs
#> ├── src
#> │   ├── nimble_test
#> │   │   └── submodule.nim
#> │   └── nimble_test.nim
#> └── tests
#>     ├── config.nims
#>     └── test1.nim
Lafixier RafinantokaLafixier Rafinantoka

パッケージのインストール

パッケージは./nimbledeps/pkgsにインストールされる。

任意のパッケージ (今回はcligen) をインストールしたい場合

nimble install cligen
#>    Warning: Using project local deps mode
#> Downloading https://github.com/c-blake/cligen.git using git
#>   Verifying dependencies for cligen@1.6.1
#>  Installing cligen@1.6.1
#>    Success: cligen installed successfully.

nimble_test.nimbleに記載されている依存パッケージをインストールしたい場合

nimble install -dy
#>    Warning: Using project local deps mode
#>   Verifying dependencies for nimble_test@0.1.0
#>  … (略)
このスクラップは2023/04/30にクローズされました