この派生は、予想どおり、現在のディレクトリ内のすべてのファイルを再帰的に含むように見えます。
src = builtins.path {
name = pname;
path = ./.;
};
私はその小さな部分だけを含めたいとcontent/index.html
思いますpackage.json
。しかし、私のフィルタはすべてを除外しているようです。
src = builtins.path {
name = pname;
path = ./.;
filter = path: type:
builtins.elem path [
./content/index.html
./package.json
];
};
少なくとも以下の事項によるとpkgs.mkYarnPackage
:
エラー: '/nix/store/[… ] / package.json 'ファイルを開く:そのファイルまたはディレクトリはありません。
私のフィルタに何が問題ですか?
次のフィルタする動作しますが、少しハッキングです。
filter = path: type:
builtins.elem (baseNameOf path) [
"index.html"
"package.json"
];
./package.json
項目の平等に問題があるようですsrc
。返されたパスはbuiltins.path
異なるデータ型/値ですか./foo
?
答え1
それを発見回答:builtins.path
アイテムをパスに変換するのは簡単です。
filter = path: type:
builtins.elem (/. + path) [
./content
./content/index.html
./package.json
];
(各ディレクトリとその内容を一覧表示する必要があります。)