Hi Introduction ------------ Inspired by Ricardos commit here I rewrote most of the npm importer. Added memoization, receive, stream->list, values and rewrote the tarball fetcher to use only npm-uri and tarballs from the registry. Additionally I implemented handling of scoped packages (e.g. @babel/core). It contains less lines of code than Jelles importer. The single import works and is a lot faster and more reliable than before when fuzzy matching on github was used. See it in action: http://paste.debian.net/1054384/ Caveats: 1) we don't know if the registry-tarballs are reproducible. 2) filename is the same as the upstream tarball -> we should convert it to guix-name. 3) we have to download the tarball because sha256 is not among the hashes computed by npm. (I emailed npm@npmjs.org to ask for them to compute it for all their tarballs :) ) Help wanted ----------- There is a bug which only affects the recursive importer. I tried hard finding it but I'm in way over my head and my guile-foo does not seem to cut it with this one. :) For recursive output it downloads but outputs #f in the end instead of the sexps. See example output: http://paste.debian.net/1054383/ Trying to debug via the REPL I met this: scheme@(guile-user) [1]> (npm-recursive-import "async") $3 = # Any ideas? -- Cheers Swedebugia