Npm (software): Difference between revisions

From David's Wiki
 
Line 68: Line 68:


==Resources==
==Resources==
* [[https://zellwk.com/blog/publish-to-npm/ https://zellwk.com/blog/publish-to-npm/ zellwk publish to npm]
* [https://zellwk.com/blog/publish-to-npm/ https://zellwk.com/blog/publish-to-npm/ zellwk publish to npm]

Latest revision as of 14:31, 17 July 2021

NPM is a package manager for JavaScript and TypeScript projects.

Usage

# Install packages from package.json
npm install
# Install versioned packages from package-lock.json
npm ci

package.json

Example package.json
{
  "name": "@david18284/ddns-cloudflare",
  "version": "1.0.0",
  "description": "A DDNS Updater for Cloudflare.<br>\r This will scan for all \"A\" records and update their IPs.",
  "main": "./build/index.js",
  "bin": {
    "ddns-cloudflare": "./bin/cli.js"
  },
  "scripts": {
    "start": "npm run compile && node build/index.js",
    "compile": "babel src -d build",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/dli7319/ddns-cloudflare-javascript.git"
  },
  "author": "David Li",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/dli7319/ddns-cloudflare-javascript/issues"
  },
  "homepage": "https://github.com/dli7319/ddns-cloudflare-javascript#readme",
  "dependencies": {
    "node-fetch": "^2.3.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.10.5",
    "@babel/core": "^7.11.4",
    "@babel/preset-env": "^7.11.0"
  }
}

  • scripts contains JS commands you can run with npm run
  • bin contains binaries or scripts which get installed globally.

Publishing

  1. Create an account at https://npmjs.org.
  2. Login to npm using npm login.
  3. Initialize a package.json using npm init.
    • I recommend using a scoped name @username/package-name.
  4. Make a UMD build e.g. using webpack.
    • Fill in all the details in package.json.
    • For publishing the most important are: name, version, description, main, module, author, repository, license, files, homepage.
  5. Test your package.
    • Run your own tests using npm run test.
    • Install to another package using `npm install [dir]`.
  6. Version and upload to npm
    npm version [major|minor|patch]
    
    npm publish --access public

Resources