NPM używać Wprowadzenie
NPM towarzyszy NodeJS pakiet narzędzi do zarządzania zainstalowanymi razem, można rozwiązać wiele problemów NodeJS kod do wdrożenia na typowych scenariuszy użytkowania są następujące:
- NPM pozwala użytkownikom pobrać z serwera na opakowaniach zewnętrznych pisanych przez innych do stosowania miejscowego.
- To pozwala użytkownikom pobrać i zainstalować program wiersza polecenia napisane przez kogoś innego, aby korzystać z serwera lokalnego z KMP.
- To pozwala użytkownikom pisać swój własny program pakietu lub wiersz poleceń przekazany do serwera dla innych do korzystania z KMP.
Ponieważ nowa wersja nodejs zintegrowały KMP, więc przed KMP być również zainstalowany. Można również wprowadzić"npm -v", aby sprawdzić, czy udanej instalacji.Następujące polecenie, wersja pojawia się szybka instalacja przebiegła pomyślnie:
$ npm -v 2.3.0
Jeśli zainstalować starszą wersję npm, można łatwo uaktualnić poprzez KMP do polecenia, polecenie jest następujące:
$ 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
Jeśli system okienny, należy użyć następującego polecenia:
npm install npm -g
NPM zainstalować przy użyciu modułu dowodzenia
npm zainstalować moduł node.js składnia jest następująca:
$ npm install <Module Name>
Poniższe przykłady, używamy polecenia do zainstalowania npm wspólne ramy modułu WWW node.jsExpress:
$ npm install express
Raz zainstalowany, wyrażają pakiet jest umieszczony w katalogu node_modules w katalogu projektu, więc kod tylko przezrequire ( 'Express'), jak sposób, bez podania ścieżki do opakowań zewnętrznych.
var express = require('express');
Globalny montaż i instalacja lokalna
npm zainstalować pakiet do instalacji lokalnej (local), globalny instalację (globalne) są dwa, puk z wiersza poleceń, a jedyną różnicą jest brak -g tylko, takich jak
npm install express # 本地安装 npm install express -g # 全局安装
Jeśli następujący błąd:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
Rozwiązanie:
$ npm config set proxy null
Instalacja lokalna
- 1. Umieść pakiet instalacyjny umieszczone w ./node_modules (katalog, w którym polecenie działa NPM), jeśli nie node_modules katalog wygeneruje w bieżącym katalogu node_modules katalogu wykonania polecenia npm.
- 2. mogą być wprowadzane lokalnie zainstalowany pakiet przez require ().
Globalny Instalacja
- 1. Umieść pakiet instalacyjny umieszczone w katalogu / usr / local lub węzła katalogu instalacyjnym.
- 2. Można użyć bezpośrednio w linii poleceń.
Jeśli chcesz mieć obie funkcje, trzeba go zainstalować w dwóch miejscach lub użyj linku npm.
Następnie używamy globalna instalacja ekspresowa
$ npm install express -g
Proces instalacji następujące wyjście, pierwsza linia numer wersji i lokalizacji instalacji modułu.
[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])
Można użyć następującego polecenia, aby wyświetlić wszystkie globalne zainstalowane moduły:
$ npm ls -g
Korzystanie package.json
package.json się w module katalogu określa właściwości opakowania. Spójrzmy na plik package.json Pakiet ekspresowy znajduje node_modules / wyraźnej treści / package.json:
{ "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!" }
Opis Package.json nieruchomości
Nazwa - nazwa pakietu.
Wersja - numer wersji pakietu.
Opis - opis pakietu.
Oficjalna strona pakiet url- strona główna.
autor - autor nazwy pakietu.
Nazwy innych użytkowników pakietu- współpracowników.
Zależności - lista zależności.Jeżeli zależności nie są zainstalowane, npm automatycznie zainstaluje pakiety zależne w katalogu node_module.
Obszary typu magazynu kod pakietu, albo git svn lub git dostępny na Github- repozytorium.
Głównym - pole głównymjest identyfikator modułu, który jest wskaźnikiem do dużego projektu swojego programu. Oznacza to, że jeśli opakowanie nazwa Express, to użytkownik, aby go zainstalować, a następnie require ( "express").
słowa kluczowe - Słowo kluczowe
moduł rozładunek
Możemy użyć następującego polecenia, aby odinstalować moduły node.js.
$ npm uninstall express
Po odinstalowaniu programu, można przejść do następnego pakietu / node_modules / Katalog jest tam, albo użyć następującego polecenia:
$ npm ls
Moduł aktualizacji
Możemy użyć następującego polecenia, aby zaktualizować moduł:
$ npm update express
Moduł wyszukiwania
Użyj następujących modułów wyszukiwania:
$ npm search express
Utwórz moduł
Utwórz moduł, plik package.json jest niezbędna. Możemy użyć NPM wygenerować plik package.json, plik wynikowy zawiera podstawowe wyniki.
$ 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
Powyższe informacje, trzeba wprowadzić swoją własną sytuację. Po ostatnim wejściu "tak" wygeneruje plik package.json.
Wtedy możemy użyć następującego polecenia dla zarejestrowanych użytkowników (wykorzystanie poleconym) w repozytorium npm:
$ npm adduser Username: mcmohd Password: Email: (this IS public) [email protected]
Następnie stosujemy następujące polecenie, aby zwolnić moduł:
$ npm publish
Jeśli zrobisz powyższe kroki zostały wykonane poprawnie, można użyć tak samo z innymi modułami zainstalować KMP.
Numer wersji
NPM pobrać i używać kod ukaże się po wystawieniu na numer wersji. NPM za pomocą semantycznego numer wersji zarządzać kod tutaj krótko.
Wersja Semantyka jest podzielony na trzy XYZ, co stanowi główny numer wersji, numer wersji i drobne poprawki numer wersji. Kiedy zmiana kodu, numer wersji aktualizacji zgodnie z następującymi zasadami.
- Gdyby tylko rozwiązuje problem, trzeba zaktualizować trochę z.
- Jeśli to nowa funkcja, ale kompatybilny wstecz, to musi być aktualizowany bity y.
- Jeśli istnieją duże zmiany, nie są kompatybilne w dół, musi być aktualizowana pozycja X.
Dzięki tej pewności po numerze wersji, w oświadczeniu zależy na opakowaniach zewnętrznych, dodatkowo polegać na stałej liczbie wersji, ale również zależy od zakresu numerów wersji. Na przykład "argv": "0.0.x" polega na serii 0.0.x reprezentuje najnowszą wersję argv.
Wszystkie wersje obsługują zakres numerów kierowania KMP można zobaczyć na oficjalnej dokumentacji .
KMP wspólne polecenia
Poza tym w tym rozdziale, NPM zapewnia również wiele funkcji, package.json posiada również wiele innych przydatnych pól.
Oprócz npmjs.org/doc/ sprawdzić oficjalnej dokumentacji, ale oto niektóre powszechnie używane polecenia KMP.
NPM zapewnia wiele poleceń, jak zainstalować i publikowania, stosując npm pomocy, aby zobaczyć wszystkie polecenia.
NPM zapewnia wiele poleceń, takich jak
install
ipublish
, stosującnpm help
, aby zobaczyć wszystkie polecenia.Użyj
npm help <command>
aby zobaczyć szczegółową pomoc dla polecenia, takie jaknpm help install
.W
package.json
użyć następujących katalognpm install . -g
Może być zainstalowany lokalnie na bieżącym programem wiersza poleceń, które mogą być używane do lokalnego testowania przed zwolnieniem.Użyj
npm update <package>
można umieścić aktualny katalognode_modules
podkatalogu wewnątrz modułu odpowiada najnowszej wersji.Użyj
npm update <package> -g
może odpowiadać programem wiersza poleceń globalnie zainstalowanej aktualizacji do najnowszej wersji.Użyj
npm cache clear
można wyczyścić NPM lokalnej pamięci podręcznej, aby uporać się z tym samym numerem wersji dla nowej tagów uwalnianiu.Użyj
npm unpublish <package>@<version>
> może zostać odwołane Poczta wydała wersję własnego kodu.
Użyj Taobao NPM lustro
Wszyscy wiemy, że krajowe bezpośrednie wykorzystanie oficjalnej KMP lustro jest bardzo powolny, nie zaleca się używania Taobao NPM lustro.
Taobao NPM jest pełne lustro npmjs.org obrazu, można użyć tego zamiast oficjalnej wersji (tylko do odczytu), obecnie synchronizacji częstotliwością 10 minut w celu zapewnienia, w miarę możliwości, aby zsynchronizować z oficjalną obsługą.
Można użyć niestandardowego cnpm Taobao (gzip kompresja) pomocy narzędzia wiersza polecenia zamiast domyślnego KMP:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
Moduł ten może być zainstalowany przy użyciu poleceń cnpm:
$ cnpm install [name]
Więcej informacji można znaleźć: http://npm.taobao.org/ .