diff --git a/swh/loader/package/npm/loader.py b/swh/loader/package/npm/loader.py
--- a/swh/loader/package/npm/loader.py
+++ b/swh/loader/package/npm/loader.py
@@ -187,9 +187,13 @@
     """
     if isinstance(author_data, dict):
         author_str = ""
-        name = author_data.get("email")
+        name = author_data.get("name")
         if name is not None:
-            author_str += author_data["name"]
+            if isinstance(name, str):
+                author_str += name
+            elif isinstance(name, list):
+                author_str += _author_str(name[0]) if len(name) > 0 else ""
+
         email = author_data.get("email")
         if email is not None:
             author_str += f" <{email}>"
diff --git a/swh/loader/package/npm/tests/test_npm.py b/swh/loader/package/npm/tests/test_npm.py
--- a/swh/loader/package/npm/tests/test_npm.py
+++ b/swh/loader/package/npm/tests/test_npm.py
@@ -34,6 +34,11 @@
         ([], ""),
         ({"name": "groot", "email": "groot@galaxy.org",}, "groot <groot@galaxy.org>"),
         ({}, ""),
+        ({"name": []}, "",),
+        (
+            {"name": ["Susan McSween", "William H. Bonney", "Doc Scurlock",]},
+            "Susan McSween",
+        ),
     ]:
         assert _author_str(author) == expected_author