Everything to do with microservices and docker uses these YAML files and it's terribly confusing! And then they change the schema from version to version, so there's another headache. This is not NPM's fault though, it's GH actions I think you're dealing with. You can publish to NPM via command line (npm publish, once logged in) . But I prefer also using CI builds to run tests etc before publishing to be safe.. I use circleci which uses the same yaml config stuff, but at least I found the documentation to be good.