Latest web development tutorials

NPM menggunakan Pendahuluan

NPM disertai NodeJS alat manajemen paket yang diinstal bersama-sama, dapat memecahkan kode banyak masalah NodeJS untuk penyebaran pada skenario penggunaan umum adalah sebagai berikut:

  • NPM memungkinkan pengguna untuk men-download dari server ke paket pihak ketiga yang ditulis oleh orang lain untuk penggunaan lokal.
  • Hal ini memungkinkan pengguna untuk men-download dan menginstal program baris perintah yang ditulis oleh orang lain untuk menggunakan server lokal dari NPM.
  • Hal ini memungkinkan pengguna untuk menulis program paket atau baris perintah mereka sendiri di-upload ke server untuk orang lain untuk menggunakan NPM.

Sejak versi baru dari nodejs telah NPM terintegrasi, jadi sebelum NPM juga dipasang. Anda juga dapat memasukkan"NPM -v" untuk menguji apakah instalasi berhasil.Perintah berikut, versi muncul instalasi yang cepat berhasil:

$ npm -v
2.3.0

Jika Anda menginstal versi lama dari NPM, dengan mudah dapat ditingkatkan melalui NPM perintah, perintah tersebut adalah sebagai berikut:

$ sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm

Jika sistem Window, gunakan perintah berikut:

npm install npm -g

NPM menginstal menggunakan modul perintah

NPM menginstal Node.js sintaks modul adalah sebagai berikut:

$ npm install <Module Name>

Contoh-contoh berikut, kita menggunakan perintah untuk menginstal NPM kerangka umum modul web Node.jsmengungkapkan:

$ npm install express

Setelah terinstal, mengungkapkan paket ditempatkan di direktori node_modules dalam direktori proyek, sehingga kode hanya melaluimemerlukan ( 'mengungkapkan') seperti cara, tanpa menentukan path ke paket pihak ketiga.

var express = require('express');

instalasi global dan instalasi lokal

NPM menginstal paket ke instalasi lokal (lokal), instalasi global (global) adalah dua, mengetuk dari baris perintah, satu-satunya perbedaan adalah tidak ada g saja, seperti

npm install express          # 本地安装
npm install express -g   # 全局安装

Jika error berikut:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

solusi:

$ npm config set proxy null

Instalasi lokal

  • 1. Tempatkan paket instalasi ditempatkan di ./node_modules (direktori dimana perintah berjalan NPM), jika tidak node_modules direktori akan menghasilkan dalam direktori NPM perintah eksekusi direktori saat node_modules.
  • 2. dapat diperkenalkan paket yang diinstal secara lokal melalui memerlukan ().

Instalasi global

  • 1. Tempatkan paket instalasi ditempatkan di / usr / local atau node direktori instalasi Anda.
  • 2. Anda dapat menggunakan langsung pada baris perintah.

Jika Anda ingin memiliki kedua fitur, Anda perlu menginstalnya di dua tempat atau menggunakan penghubung NPM.

Selanjutnya, kita menggunakan global menginstal express

$ npm install express -g

Proses instalasi output berikut, baris pertama dari nomor versi output dan lokasi pemasangan modul.

[email protected] node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])

Anda dapat menggunakan perintah berikut untuk melihat semua modul diinstal dunia:

$ npm ls -g

Gunakan package.json

package.json terletak di modul direktori, mendefinisikan sifat dari paket. Mari kita lihat pada node_modules / express / konten package.json berkas package.json ekspres paket berada:

{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.13.3",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "[email protected]"
  },
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "[email protected]"
    },
    {
      "name": "Ciaran Jessup",
      "email": "[email protected]"
    },
    {
      "name": "Douglas Christopher Wilson",
      "email": "[email protected]"
    },
    {
      "name": "Guillermo Rauch",
      "email": "[email protected]"
    },
    {
      "name": "Jonathan Ong",
      "email": "[email protected]"
    },
    {
      "name": "Roman Shtylman",
      "email": "[email protected]"
    },
    {
      "name": "Young Jae Sim",
      "email": "[email protected]"
    }
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/strongloop/express.git"
  },
  "homepage": "http://expressjs.com/",
  "keywords": [
    "express",
    "framework",
    "sinatra",
    "web",
    "rest",
    "restful",
    "router",
    "app",
    "api"
  ],
  "dependencies": {
    "accepts": "~1.2.12",
    "array-flatten": "1.1.1",
    "content-disposition": "0.5.0",
    "content-type": "~1.0.1",
    "cookie": "0.1.3",
    "cookie-signature": "1.0.6",
    "debug": "~2.2.0",
    "depd": "~1.0.1",
    "escape-html": "1.0.2",
    "etag": "~1.7.0",
    "finalhandler": "0.4.0",
    "fresh": "0.3.0",
    "merge-descriptors": "1.0.0",
    "methods": "~1.1.1",
    "on-finished": "~2.3.0",
    "parseurl": "~1.3.0",
    "path-to-regexp": "0.1.7",
    "proxy-addr": "~1.0.8",
    "qs": "4.0.0",
    "range-parser": "~1.0.2",
    "send": "0.13.0",
    "serve-static": "~1.10.0",
    "type-is": "~1.6.6",
    "utils-merge": "1.0.0",
    "vary": "~1.0.1"
  },
  "devDependencies": {
    "after": "0.8.1",
    "ejs": "2.3.3",
    "istanbul": "0.3.17",
    "marked": "0.3.5",
    "mocha": "2.2.5",
    "should": "7.0.2",
    "supertest": "1.0.1",
    "body-parser": "~1.13.3",
    "connect-redis": "~2.4.1",
    "cookie-parser": "~1.3.5",
    "cookie-session": "~1.2.0",
    "express-session": "~1.11.3",
    "jade": "~1.11.0",
    "method-override": "~2.3.5",
    "morgan": "~1.6.1",
    "multiparty": "~4.1.2",
    "vhost": "~3.0.1"
  },
  "engines": {
    "node": ">= 0.10.0"
  },
  "files": [
    "LICENSE",
    "History.md",
    "Readme.md",
    "index.js",
    "lib/"
  ],
  "scripts": {
    "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
    "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/",
    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/",
    "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
  },
  "gitHead": "ef7ad681b245fba023843ce94f6bcb8e275bbb8e",
  "bugs": {
    "url": "https://github.com/strongloop/express/issues"
  },
  "_id": "[email protected]",
  "_shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
  "_from": "express@*",
  "_npmVersion": "1.4.28",
  "_npmUser": {
    "name": "dougwilson",
    "email": "[email protected]"
  },
  "maintainers": [
    {
      "name": "tjholowaychuk",
      "email": "[email protected]"
    },
    {
      "name": "jongleberry",
      "email": "[email protected]"
    },
    {
      "name": "dougwilson",
      "email": "[email protected]"
    },
    {
      "name": "rfeng",
      "email": "[email protected]"
    },
    {
      "name": "aredridel",
      "email": "[email protected]"
    },
    {
      "name": "strongloop",
      "email": "[email protected]"
    },
    {
      "name": "defunctzombie",
      "email": "[email protected]"
    }
  ],
  "dist": {
    "shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
    "tarball": "http://registry.npmjs.org/express/-/express-4.13.3.tgz"
  },
  "directories": {},
  "_resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz",
  "readme": "ERROR: No README data found!"
}

Package.json Deskripsi Properti

  • nama - nama paket.

  • Versi - nomor versi dari paket.

  • deskripsi - deskripsi paket.

  • paket website url resmi- homepage.

  • penulis - penulis nama paket.

  • Nama-nama kontributor lain paket- kontributor.

  • dependensi - daftar dependensi.Jika dependensi tidak diinstal, NPM otomatis akan menginstal paket tergantung dalam direktori node_module.

  • repositori - Jenis tempat penyimpanan kode paket, baik git atau svn, git tersedia di Github.

  • utama - Bidang utamaadalah ID modul, yang merupakan pointer ke proyek utama dari program Anda. Artinya, jika Anda pak nama express, maka pengguna untuk menginstal, dan kemudian memerlukan ( "mengungkapkan").

  • kata kunci - kata kunci


modul bongkar

Kita dapat menggunakan perintah berikut untuk menghapus modul Node.js.

$ npm uninstall express

Setelah menguninstall, Anda dapat pergi ke paket / node_modules / Katalog berikutnya adalah ada, atau menggunakan perintah berikut:

$ npm ls

Update Modul

Kita dapat menggunakan perintah berikut untuk memperbarui modul:

$ npm update express

Modul pencarian

Gunakan modul pencarian berikut:

$ npm search express

Buat modul

Buat modul, berkas package.json sangat penting. Kita dapat menggunakan NPM menghasilkan file package.json, file yang dihasilkan berisi hasil dasar.

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (node_modules) w3big                   # 模块名
version: (1.0.0) 
description: Node.js 测试模块(www.w3big.com)  # 描述
entry point: (index.js) 
test command: make test
git repository: https://github.com/w3big/w3big.git  # Github 地址
keywords: 
author: 
license: (ISC) 
About to write to ……/node_modules/package.json:      # 生成地址

{
  "name": "w3big",
  "version": "1.0.0",
  "description": "Node.js 测试模块(www.w3big.com)",
  ……
}


Is this ok? (yes) yes

Informasi di atas, Anda perlu untuk memasukkan situasi Anda sendiri. Setelah input akhir "ya" akan menghasilkan file package.json.

Maka kita dapat menggunakan perintah berikut untuk pengguna terdaftar (menggunakan pos tercatat) dalam repositori NPM:

$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) [email protected]

Selanjutnya, kita gunakan perintah berikut untuk melepaskan modul:

$ npm publish

Jika Anda melakukan langkah-langkah di atas dilakukan dengan benar, Anda dapat menggunakan yang sama dengan modul lain untuk menginstal NPM.


Nomor versi

NPM men-download dan menggunakan kode tersebut akan dirilis bila terkena nomor versi. NPM menggunakan semantik nomor versi untuk mengelola kode, di sini sebentar.

Versi semantik dibagi menjadi tiga XYZ, mewakili nomor versi besar, kecil nomor versi dan versi patch yang nomor. Ketika perubahan kode, nomor versi update sesuai dengan prinsip-prinsip berikut.

  • Jika hanya perbaikan bug, Anda perlu memperbarui bit Z.
  • Jika Anda adalah fitur baru, namun kompatibel, itu perlu diperbarui Y bit.
  • Jika ada perubahan besar, tidak kompatibel ke bawah, itu perlu diperbarui posisi X.

Dengan jaminan ini setelah nomor versi, dalam sebuah pernyataan tergantung pada paket pihak ketiga, selain mengandalkan nomor versi tetap, tetapi juga tergantung pada kisaran angka versi. Misalnya "argv": "0.0.x" tergantung pada seri 0.0.x merupakan versi terbaru dari argv.

Semua versi mendukung berbagai nomor menargetkan NPM dapat melihat dokumentasi resmi .


perintah umum NPM

Selain bagian dalam bab ini, NPM juga menyediakan banyak fitur, package.json juga memiliki banyak bidang lain yang bermanfaat.

Selain npmjs.org/doc/ memeriksa dokumentasi resmi, tapi kemudian di sini adalah beberapa yang umum digunakan perintah NPM.

NPM menyediakan banyak perintah, seperti menginstal dan mempublikasikan, menggunakan NPM bantuan untuk melihat semua perintah.

  • NPM menyediakan banyak perintah, seperti install dan publish , menggunakan npm help untuk melihat semua perintah.

  • Gunakan npm help <command> untuk melihat bantuan rinci untuk perintah, seperti npm help install .

  • Dalam package.json menggunakan direktori berikut npm install . -g Dapat diinstal secara lokal pada program baris perintah saat ini yang dapat digunakan untuk pengujian lokal sebelum rilis.

  • Gunakan npm update <package> dapat menempatkan direktori saat node_modules subdirektori di dalam modul sesuai dengan versi terbaru.

  • Gunakan npm update <package> -g dapat sesuai dengan program baris perintah global menginstal update ke versi terbaru.

  • Gunakan npm cache clear dapat menghapus cache lokal NPM, berurusan dengan nomor versi yang sama untuk tag rilis baru.

  • Gunakan npm unpublish <package>@<version> > dapat dicabut Pasang merilis versi kode mereka sendiri.


Gunakan cermin Taobao NPM

Kita semua tahu bahwa penggunaan langsung domestik NPM cermin resmi sangat lambat, ada dianjurkan untuk menggunakan cermin Taobao NPM.

Taobao NPM adalah gambar cermin npmjs.org selesai, Anda dapat menggunakan ini bukan versi resmi (read-only), frekuensi saat sinkronisasi dari 10 menit untuk memastikan sejauh mungkin untuk melakukan sinkronisasi dengan layanan resmi.

Anda dapat menggunakan Taobao kustom cnpm (dukungan kompresi gzip) alat baris perintah bukan NPM default:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

Modul ini dapat diinstal dengan menggunakan perintah cnpm:

$ cnpm install [name]

Informasi lebih lanjut dapat ditemukan: http://npm.taobao.org/ .