-
watch the egghead.io series How to Write an Open Source JavaScript Library; it is extremely useful for any NPM project (OSS or closed-sourced).
-
start unit testing right away, pick your unit testing framework
-
start linting code to prevent obvious problems, like misspelled variable. eslint, jshint, jscs or all of them together gulp-lint-everything
-
run linting and unit tests on each commit locally. pre-git, ghooks
-
validate commit message using pre-git or commitizen with validate-commit-msg. This enables other tools, like intelligent release notes.
-
show the project's GitHub open issues on demand or on commit using git-issues
-
setup continuous integration server, like TravisCI or CircleCI (or wait until you set up semantic-release which will set up TravisCI for you).
-
add badges to the README to make broken unit tests or out of date dependencies visible
- ci server badge
- published NPM package info
- production and dev dependencies being out of date
- semantic release badge
-
check module published size and white list only necessary files, tutorial
-
setup semantic-release to automate publishing and avoid breaking semver. This is important, but is currently broken in too many projects. Even this checklist is using semver!
-
avoid surprizes by using exact versions of the top level dependencies. Use save-exact NPM setting and exact-semver to enforce it.
-
setup a script to reliably update out of date dependencies using next-update
-
catch missing or invalid
package.json
values using grunt-nice-package or fixpack -
write simple installation commands for your module
-
write "quick intro" example showing the main feature of your module
-
add CONTRIBUTING.md file with clear guidelines how others can add new features or fix bugs in your module. Atom editor and lodash have excellent examples to follow.
Source: npm-module-checklist