Search code examples
node.jsnpmmarkdownnpm-publish

npmjs.org - Unable to find a readme for


I'm a lead author of the npm package scramjet - since a month I have a problem regarding the visibility of the README.md in npmjs.

The scramjet package in npm shows:

"Unable to find a readme for [email protected]"

But at the same time the README.md file is there and npm command doesn't complain about any info.

I checked if this is not caused by:

  • external images
  • length of the readme
  • I tried publishing again

The README shows up nicely in github and the file is also added to package.json/files here.

I tried npm support, but they stopped replying so maybe someone here has an idea?

Edit: I'm publishing this from a tarball I get from github - so npm publish <url from gh>


Solution

  • Your scramjet-4.33.2.tgz archive, that currently exists in the npm registry, when extracted produces something like the following directory structure:

    scramjet-4.33.2          <-----
    ├── CHANGELOG.md
    ├── CNAME
    ├── CODE_OF_CONDUCT.md
    ├── LICENSE
    ├── README.md
    ├── docs
    │   └── ...
    ├── greenkeeper.json
    ├── gulpfile.js
    ├── jsconfig.json
    ├── jsdoc2md
    │   └── ...
    ├── lib
    │   └── ...
    ├── package-lock.json
    ├── package.json
    └── ...
    

    Note: the name of the root directory (indicated above) is currently scramjet-4.33.2

    NPM expects the root directory to be named package therefore it is unable to find the README.md.

    To clarify further, your .tgz directory structure should be as follows:

    package                  <----- Note: changed to `package`
    ├── CHANGELOG.md
    ├── CNAME
    ├── CODE_OF_CONDUCT.md
    ├── LICENSE
    ├── README.md
    ├── docs
    │   └── ...
    ├── greenkeeper.json
    ├── gulpfile.js
    ├── jsconfig.json
    ├── jsdoc2md
    │   └── ...
    ├── lib
    │   └── ...
    ├── package-lock.json
    ├── package.json
    └── ...
    

    Edit from author of the question:

    Additonally some background - the above situation happens if you try to publish your packages straight from github releases which used to work before, so don't do this anymore:

    npm publish https://github.com/anorg/arepo/archive/v1.2.3.tar.gz
    

    Instead use npm pack to create a tarball or just run npm publish in your working copy.