在一片雪花中.我如何从它运行一个脚本,并使用相同的flake.nix输出



这是这个问题的续集。

我有一个bash命令列表,当这些命令被执行时生成一个文件nix目录。

mkdir nix
rm -fr node_module
node2nix -16 --development --input package.json --lock package-lock.json --node-env ./nix/node-env.nix --composition ./nix/default.nix  --output ./nix/node-package.nix

我有雪花。使用Nix创建环境的Nix文件。

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
#npm_pack = import (./nix );
npm_pack = import ./nix { inherit pkgs ;};
in with pkgs;{
#devShell = mkShell { buildInputs = [ npm_pack.package ];};
devShell = npm_pack.shell;
});
}

使用以下命令执行:

nix develop --extra-experimental-features nix-command --extra-experimental-features flakes --ignore-environment

有办法修改薄片吗?Nix文件创建Nix目录,然后做与Nix目录必须做的工作。

我知道我可以创建一个bash文件(见为什么我不喜欢它的答案)

为了创建薄片。我在考虑一开始用鱼钩之类的东西。我还需要确保安装了node和node2nix。因此我需要这一行

node2nix.url ="github:svanderburg/node2nix"; # in the input
nodejs = pkgs.nodejs-16_x; #in the output

运行此脚本有效

#/nix/store/4xw8n979xpivdc46a9ndcvyhwgif00hz-bash-5.1-p16/bin/bash
#nix-shell -p node2nix nodejs stdenv --pure
npm init -y
npm install  node-gyp-build
mkdir nix;
rm -fr node_modules ;
node2nix -16 --development --input package.json --lock package-lock.json --node-env ./nix/node-env.nix --composition ./nix/default.nix  --output ./nix/node-package.nix
nix develop --extra-experimental-features nix-command --extra-experimental-features flakes --ignore-environment

但是如果有人在目录中没有bash而不是我的bash,它就不起作用。因此,我更喜欢由实现大薄片组成的解决方案。nix,因为我确信如果安装了nix,它可以工作

和它需要的文件:片。Nix和script.sh

相关内容

  • 没有找到相关文章

最新更新