有没有办法构建Nix表达式来为`nix-shell`创建开发环境

时间:2015-10-09 15:15:00

标签: development-environment code-reuse nix

假设我创建了一个Rails项目并为nix-shell创建了一个default.nix,它将通过nix-shell .为该项目创建开发环境。当然,这个shell将具有Ruby on Rails所需的任何依赖性。

现在假设我也创建了一个AngularJS项目并为此做了同样的事情,创建了一个default.nix来运行nix-shell .

考虑一下,将来我可能会有一个同时使用Angular和Ruby on Rails的项目(假设说)。有没有办法让我的Angular项目的default.nix和我的Rails项目default.nix并将它们组合在一起而不需要复制粘贴?

此外,我们假设此项目以后可能需要其他依赖项。我可以做一些事情,将Rails default.nix保存为rails-env.nix,将Angular default.nix保存为angular-env.nix,然后将它们包含在新的default.nix中对于我的Rails-Angular + Extras项目,以便我可以在rails-env.nixangular-env.nix中声明两个依赖项,但是还要声明除这些包含之外的其他依赖项,从而最大化我的Nix表达式的可重用性创建开发环境?

1 个答案:

答案 0 :(得分:1)

Nix文件只是一个可以使用function myClickHandler(event) { var id = $(this).attr('id'); $(this).off("click"); // +--- Data attribute with the // | related 'ledig-btn' // v $('.minlista').append('<tr><td><div class="list-domains" data-id='+id+'><span class="delete-list-domains">X</span>' + '<td class="tld-sok">' + searchWord + '<div class="tld-sok-ilista">' + domain + '</div>' + '</td>' + '</div></td></tr>'); event.stopImmediatePropagation(); $("tr td .list-domains").on('click', function(e) { var ledigBtnId = $(this).data('id'); // ledig-btn ID var delRow = $(e.target).closest('tr'); delRow.remove(); // Here we re-bind the click event handler. $("#" + ledigBtnId).on("click", myClickHandler); }); } $(".ledig-btn").on('click', myClickHandler); 导入的表达式。您可以将您喜欢的任何表达式分解为单独的文件并重用它。它是一个标准做法,使它成为一个功能,以便您可以针对不同的项目或构建进行不同的参数化。

以下是一些导入的好例子: http://sandervanderburg.blogspot.ro/2014/07/managing-private-nix-packages-outside.html

和Nix表达语言的介绍,这很简单: https://medium.com/@MrJamesFisher/nix-by-example-a0063a1a4c55