使用Reflex Platform编译包含本地包的堆栈项目

问题描述:

我想使用reflex-platform中的编写脚本来编译一个项目,该项目直到现在才使用堆栈进行管理,如解释here所述。使用Reflex Platform编译包含本地包的堆栈项目

在stack.yaml的软件包列表我必须位于本地路径中的包的引用,是这样的:

packages: 
- '.' 
- ../<my_package> 

当我运行该脚本,我得到一个奇怪的尼克斯错误,说一个匿名函数已经被调用,没有必要的参数(使用本地包的名称)。

error: anonymous function at /nix/store/sci0xi7jjwl9krpsp051iry1blz0jaw0-cabal2nix-for-unknown-package/default.nix:1:1 called without required argument ‘my_package’, at /nix/store/wgg4rzg3hyywfd7b0917qmj4617rza7k-nixpkgs-32833c010ecf868826aaa3b60d322bf697f37134-src/pkgs/development/haskell-modules/make-package-set.nix:69:27

如何告诉nix在哪里可以找到它?

可以在haskellPackages使用包覆盖机制添加my_package,如在NixPkgs Manual

cabal.project文件中,作为用于此目的,大致相当于加到haskellPackages一组覆盖的。如果您完全切换到Nix,那么您可以在完成后删除cabal.project,因为它会被废弃。 NixPkgs的haskellPackages对此没有用处。它只使用cabal-install来一次构建单个软件包。