Npm (software): Difference between revisions

From David's Wiki
Line 2: Line 2:


==Usage==
==Usage==
==package.json==
<pre>
{
  "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"
  }
}
</pre>
* <code>scripts</code> contains JS commands you can run with <code>npm run</code>
* <code>bin</code> contains binaries or scripts which get installed globally.


==Publishing==
==Publishing==

Revision as of 14:45, 24 August 2020

NPM is a package manager for JavaScript and TypeScript projects.

Usage

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. Upload to npm
    npm publish --access public

Resources