Npm (software): Difference between revisions
Created page with "NPM is a package manager for JavaScript and TypeScript projects. ==Usage== ==Publishing== # Create an account at [https://npmjs.org https://npmjs.org]. # Login to npm using..." |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
==Usage== | ==Usage== | ||
<pre> | |||
# Install packages from package.json | |||
npm install | |||
# Install versioned packages from package-lock.json | |||
npm ci | |||
</pre> | |||
==package.json== | |||
{{hidden | Example 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== | ||
Line 9: | Line 57: | ||
# Initialize a <code>package.json</code> using <code>npm init</code>. | # Initialize a <code>package.json</code> using <code>npm init</code>. | ||
#* I recommend using a scoped name <code>@''username/package-name''</code>. | #* I recommend using a scoped name <code>@''username/package-name''</code>. | ||
# Make a build e.g. using webpack. | # Make a UMD build e.g. using webpack. | ||
#* Fill in all the details in <code>package.json</code>. | #* Fill in all the details in <code>package.json</code>. | ||
#* For publishing the most important are: name, version, description, main, module, author, repository, license, files, homepage. | #* For publishing the most important are: name, version, description, main, module, author, repository, license, files, homepage. | ||
# Test your package. | |||
#* Run your own tests using <code>npm run test</code>. | |||
#* Install to another package using `npm install [dir]`. | |||
# Version and upload to npm | |||
#: <pre>npm version [major|minor|patch] | |||
#:: npm publish --access public</pre> | |||
==Resources== | ==Resources== | ||
* | * [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 withnpm run
bin
contains binaries or scripts which get installed globally.
Publishing
- Create an account at https://npmjs.org.
- Login to npm using
npm login
. - Initialize a
package.json
usingnpm init
.- I recommend using a scoped name
@username/package-name
.
- I recommend using a scoped name
- 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.
- Fill in all the details in
- Test your package.
- Run your own tests using
npm run test
. - Install to another package using `npm install [dir]`.
- Run your own tests using
- Version and upload to npm
npm version [major|minor|patch]
- npm publish --access public