Haskell Nix 项目模板使用指南

Haskell Nix 项目模板使用指南

hs-nix-templateA Haskell project template that uses Nix and comes with cabal-install, ghcid, ormolu, haskell-language-server and more.项目地址:https://gitcode.com/gh_mirrors/hs/hs-nix-template

1. 项目的目录结构及介绍

hs-nix-template/
├── github/
│   └── workflows/
├── {{cookiecutter.project_name}}/
│   ├── gitignore
│   ├── LICENSE.md
│   ├── README.md
│   ├── ci.nix
│   ├── cookiecutter.json
│   ├── test.sh
│   ├── default.nix
│   ├── hie.yaml
│   ├── modd.conf
│   ├── package.yaml
│   ├── release.nix
│   ├── shell.nix
│   ├── stack.yaml
│   ├── stack.yaml.lock
│   ├── app/
│   │   └── Main.hs
│   ├── src/
│   │   └── Lib.hs
│   └── test/
│       └── Spec.hs

目录结构介绍

  • github/workflows/: 包含GitHub Actions的工作流配置文件。
  • {{cookiecutter.project_name}}/: 项目的主要目录。
    • gitignore: Git忽略文件配置。
    • LICENSE.md: 项目许可证文件。
    • README.md: 项目说明文档。
    • ci.nix: 持续集成配置文件。
    • cookiecutter.json: Cookiecutter模板配置文件。
    • test.sh: 测试脚本。
    • default.nix: Nix默认配置文件。
    • hie.yaml: Haskell IDE Engine配置文件。
    • modd.conf: Modd配置文件。
    • package.yaml: Hpack包描述文件。
    • release.nix: 发布配置文件。
    • shell.nix: Nix shell配置文件。
    • stack.yaml: Stack配置文件。
    • stack.yaml.lock: Stack锁定文件。
    • app/: 应用程序目录,包含主文件Main.hs
    • src/: 库目录,包含库文件Lib.hs
    • test/: 测试目录,包含测试文件Spec.hs

2. 项目的启动文件介绍

启动文件

  • app/Main.hs: 这是项目的启动文件,包含了应用程序的入口点。

示例代码

module Main where

import Lib

main :: IO ()
main = someFunc

3. 项目的配置文件介绍

配置文件

  • package.yaml: 使用Hpack生成Cabal文件的配置文件。
  • stack.yaml: Stack工具的配置文件,用于管理依赖和构建项目。
  • default.nix: Nix的默认配置文件,用于定义项目的构建环境。
  • shell.nix: Nix shell的配置文件,提供一个包含所有依赖的环境。

示例配置

package.yaml
name: hs-nix-template
version: 0.1.0.0
synopsis: A Haskell project template using Nix
description: A Haskell project template that uses Nix and comes with cabal-install, ghcid, ormolu, haskell-language-server and more.
license: MIT
author: Your Name
maintainer: your.email@example.com
copyright: 2024 Your Name

dependencies:
  - base >= 4.7 && < 5
  - some-dependency

library:
  source-dirs: src

executables:
  hs-nix-template-exe:
    main: Main.hs
    source-dirs: app
    dependencies:
      - hs-nix-template

tests:
  hs-nix-template-test:
    main: Spec.hs
    source-dirs: test
    dependencies:
      - hs-nix-template
stack.yaml
resolver: lts-18.0
packages:
  - .
extra-deps: []
flags: {}
extra-package-dbs: []
default.nix
{ compiler ? "ghc8107" }:

let
  pkgs = import <nixpkgs> { };
  haskellPackages = pkgs.haskell.packages.${compiler};
in
  haskellPackages.developPackage {
    root = ./.;

hs-nix-templateA Haskell project template that uses Nix and comes with cabal-install, ghcid, ormolu, haskell-language-server and more.项目地址:https://gitcode.com/gh_mirrors/hs/hs-nix-template

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李华蓓Garret

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值