Heim Web-Frontend js-Tutorial Einführung in die Verwendung von NPM

Einführung in die Verwendung von NPM

Sep 23, 2019 pm 12:08 PM
npm

NPM ist ein Paketverwaltungstool, das zusammen mit NodeJS installiert wird. Es kann viele Probleme bei der NodeJS-Codebereitstellung lösen:

  • Ermöglichen Sie Benutzern die Anmeldung NPM-Server Laden Sie von anderen geschriebene Pakete von Drittanbietern herunter und verwenden Sie sie lokal.

  • Ermöglicht Benutzern das Herunterladen und Installieren von von anderen geschriebenen Befehlszeilenprogrammen vom NPM-Server zur lokalen Verwendung.

  • Ermöglicht Benutzern das Hochladen von Paketen oder Befehlszeilenprogrammen, die sie schreiben, auf den NPM-Server, damit andere sie verwenden können.

Da die neue Version von nodejs npm integriert hat, wurde npm auch schon einmal installiert. Sie können auch testen, ob die Installation erfolgreich ist, indem Sie „npm -v“ eingeben. Der Befehl lautet wie folgt. Wenn die Versionsaufforderung angezeigt wird, bedeutet dies, dass die Installation erfolgreich war:

$ npm -v
2.3.0
Nach dem Login kopieren

Wenn Sie eine alte Version von npm installieren, können Sie diese einfach über den Befehl npm aktualisieren folgt:

$ sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.14.2 /usr/local/lib/node_modules/npm
Nach dem Login kopieren

Wenn es sich um ein Fenster handelt, kann das System den folgenden Befehl verwenden:

npm install npm -g
Nach dem Login kopieren

Taobao-Spiegelungsbefehl verwenden:

npm install -g cnpm --registry=https://registry.npm.taobao.org
Nach dem Login kopieren

Verwenden Sie den Befehl npm, um das Modul zu installieren

npm installiert das Node.js-Modul wie folgt:

$ npm install <Module Name>
Nach dem Login kopieren

Im folgenden Beispiel , verwenden wir den Befehl npm, um das häufig verwendete Node.js-Webframework-Modul express zu installieren:

$ npm install express
Nach dem Login kopieren

Nach der Installation wird das Express-Paket im Verzeichnis node_modules unter dem Projektverzeichnis abgelegt, sodass Sie nur require verwenden müssen ('express') im Code, ohne den Paketpfad des Drittanbieters anzugeben.

var express = require(&#39;express&#39;);
Nach dem Login kopieren

Globale Installation und lokale Installation

Die Installation des NPM-Pakets ist in lokale Installation (lokal) und globale Installation (global) unterteilt. Es gibt zwei Arten. Der Befehlszeile nach zu urteilen, besteht der Unterschied nur darin, ob es -g gibt. Zum Beispiel:

npm install express          # 本地安装
npm install express -g   # 全局安装
Nach dem Login kopieren

Wenn der folgende Fehler auftritt:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
Nach dem Login kopieren

>

$ npm config set proxy null
Nach dem Login kopieren

Lokale Installation

  • 1. Platzieren Sie das Installationspaket unter ./node_modules (das Verzeichnis, in dem der npm-Befehl ausgeführt wird). Verzeichnis „node_modules“, es wird derzeit ausgeführt. Das Verzeichnis „node_modules“ wird unter dem Verzeichnis des npm-Befehls generiert.

  • 2. Lokal installierte Pakete können über require() eingeführt werden.

Globale Installation

  • 1. Platzieren Sie das Installationspaket unter /usr/local oder im Installationsverzeichnis Ihres Knotens .

  • 2. Kann direkt in der Befehlszeile verwendet werden.

Wenn Sie die Funktionalität von beiden nutzen möchten, müssen Sie es an zwei Stellen installieren oder den NPM-Link verwenden.

Als nächstes verwenden wir die globale Methode, um Express zu installieren

$ npm install express -g
Nach dem Login kopieren

Der Installationsprozess gibt den folgenden Inhalt aus. Die erste Zeile gibt die Versionsnummer und den Installationsort des Moduls aus.

express@4.13.3 node_modules/express
├── escape-html@1.0.2
├── range-parser@1.0.2
├── merge-descriptors@1.0.0
├── array-flatten@1.1.1
├── cookie@0.1.3
├── utils-merge@1.0.0
├── parseurl@1.3.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── fresh@0.3.0
├── vary@1.0.1
├── path-to-regexp@0.1.7
├── content-type@1.0.1
├── etag@1.7.0
├── serve-static@1.10.0
├── content-disposition@0.5.0
├── depd@1.0.1
├── qs@4.0.0
├── finalhandler@0.4.0 (unpipe@1.0.0)
├── on-finished@2.3.0 (ee-first@1.1.1)
├── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1)
├── debug@2.2.0 (ms@0.7.1)
├── type-is@1.6.8 (media-typer@0.3.0, mime-types@2.1.6)
├── accepts@1.2.12 (negotiator@0.5.3, mime-types@2.1.6)
└── send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)
Nach dem Login kopieren

Installationsinformationen anzeigen

Mit dem folgenden Befehl können Sie alle global installierten Module anzeigen:

$ npm list -g
├─┬ cnpm@4.3.2
│ ├── auto-correct@1.0.0
│ ├── bagpipe@0.3.5
│ ├── colors@1.1.2
│ ├─┬ commander@2.9.0
│ │ └── graceful-readlink@1.0.1
│ ├─┬ cross-spawn@0.2.9
│ │ └── lru-cache@2.7.3
……
Nach dem Login kopieren

Wenn Sie die Version von anzeigen möchten Wenn Sie eine Modulnummer haben, können Sie den folgenden Befehl verwenden:

$ npm list grunt

projectName@projectVersion /path/to/project/folder
└── grunt@0.4.1
Nach dem Login kopieren


Use package.json

package.json befindet sich in Das Verzeichnis des Moduls zum Definieren der Eigenschaften des Pakets. Schauen wir uns als Nächstes die package.json-Datei des Express-Pakets an, die sich unter node_modules/express/package.json befindet. Inhalt:

{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.13.3",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca"
  },
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "aaron.heckmann+github@gmail.com"
    },
    {
      "name": "Ciaran Jessup",
      "email": "ciaranj@gmail.com"
    },
    {
      "name": "Douglas Christopher Wilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "Guillermo Rauch",
      "email": "rauchg@gmail.com"
    },
    {
      "name": "Jonathan Ong",
      "email": "me@jongleberry.com"
    },
    {
      "name": "Roman Shtylman",
      "email": "shtylman+expressjs@gmail.com"
    },
    {
      "name": "Young Jae Sim",
      "email": "hanul@hanul.me"
    }
  ],
  "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": "express@4.13.3",
  "_shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
  "_from": "express@*",
  "_npmVersion": "1.4.28",
  "_npmUser": {
    "name": "dougwilson",
    "email": "doug@somethingdoug.com"
  },
  "maintainers": [
    {
      "name": "tjholowaychuk",
      "email": "tj@vision-media.ca"
    },
    {
      "name": "jongleberry",
      "email": "jonathanrichardong@gmail.com"
    },
    {
      "name": "dougwilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "rfeng",
      "email": "enjoyjava@gmail.com"
    },
    {
      "name": "aredridel",
      "email": "aredridel@dinhe.net"
    },
    {
      "name": "strongloop",
      "email": "callback@strongloop.com"
    },
    {
      "name": "defunctzombie",
      "email": "shtylman@gmail.com"
    }
  ],
  "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!"
}
Nach dem Login kopieren

Package.json-Eigenschaftsbeschreibung

  • Name – Paketname.

  • Version – Die Versionsnummer des Pakets.

  • Beschreibung – Beschreibung des Pakets.

  • Homepage – die offizielle Website-URL des Pakets.

  • Autor – Der Name des Autors des Pakets.

  • Mitwirkende – Namen anderer Mitwirkender des Pakets.

  • Abhängigkeiten – Liste der abhängigen Pakete. Wenn das abhängige Paket nicht installiert ist, installiert npm das abhängige Paket automatisch im Verzeichnis node_module.

  • Repository – Die Art des Ortes, an dem der Paketcode gespeichert ist. Es kann Git oder SVN sein, Git kann auf Github sein.

  • main – Das Hauptfeld gibt die Haupteintragsdatei des Programms an und require('moduleName') lädt diese Datei. Der Standardwert dieses Felds ist index.js im Stammverzeichnis des Moduls.

  • Schlüsselwörter - Schlüsselwörter


Modul deinstallieren

Mit dem folgenden Befehl können wir das Node.js-Modul deinstallieren.

$ npm uninstall express
Nach dem Login kopieren

Nach der Deinstallation können Sie in das Verzeichnis /node_modules/ gehen, um zu überprüfen, ob das Paket noch existiert, oder den folgenden Befehl verwenden, um zu überprüfen:

$ npm ls
Nach dem Login kopieren


Modul aktualisieren

Wir können das Modul mit dem folgenden Befehl aktualisieren:

$ npm update express
Nach dem Login kopieren


Suchmodul

Module suchen mit:

$ npm search express
Nach dem Login kopieren


Modul erstellen

So erstellen Sie ein Modul, ein Paket Die .json-Datei ist unerlässlich. Wir können NPM verwenden, um eine package.json-Datei zu generieren, und die generierte Datei enthält die grundlegenden Ergebnisse.

$ 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) runoob                   # 模块名
version: (1.0.0) 
description: Node.js 测试模块(www.runoob.com)  # 描述
entry point: (index.js) 
test command: make test
git repository: https://github.com/runoob/runoob.git  # Github 地址
keywords: 
author: 
license: (ISC) 
About to write to ……/node_modules/package.json:      # 生成地址
{
  "name": "runoob",
  "version": "1.0.0",
  "description": "Node.js 测试模块(www.runoob.com)",
  ……
}
Is this ok? (yes) yes
Nach dem Login kopieren

Sie müssen die oben genannten Informationen entsprechend Ihrer eigenen Situation eingeben. Nachdem Sie am Ende „Ja“ eingegeben haben, wird die Datei package.json generiert.

Als nächstes können wir den folgenden Befehl verwenden, um einen Benutzer im npm-Repository zu registrieren (verwenden Sie E-Mail, um sich zu registrieren):

$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com
Nach dem Login kopieren

Als nächstes verwenden wir den folgenden Befehl, um das Modul zu veröffentlichen:

$ npm publish
Nach dem Login kopieren

如果你以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。


版本号

使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下。

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

  • 如果只是修复bug,需要更新Z位。

  • 如果是新增了功能,但是向下兼容,需要更新Y位。

  • 如果有大变动,向下不兼容,需要更新X位。

版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如"argv": "0.0.x"表示依赖于0.0.x系列的最新版argv。

NPM支持的所有版本号范围指定方式可以查看官方文档


NPM 常用命令

除了本章介绍的部分外,NPM还提供了很多功能,package.json里也有很多其它有用的字段。

除了可以在【https://npmjs.org/doc/】查看官方文档外,这里再介绍一些NPM常用命令。

  • NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。

  • NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。

  • 使用npm help 可查看某条命令的详细帮助,例如npm help install。

  • 在package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。

  • 使用npm update 可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。

  • 使用npm update -g可以把全局安装的对应命令行程序更新至最新版。

  • 使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。

  • 使用npm unpublish @可以撤销发布自己发布过的某个版本代码。


使用淘宝 NPM 镜像

大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
Nach dem Login kopieren

这样就可以使用 cnpm 命令来安装模块了:

$ cnpm install [name]
Nach dem Login kopieren

更多信息可以查阅:http://npm.taobao.org/。

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von NPM. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

JavaScript-Paketmanager im Vergleich: Npm vs. Yarn vs. Pnpm JavaScript-Paketmanager im Vergleich: Npm vs. Yarn vs. Pnpm Aug 09, 2022 pm 04:22 PM

Dieser Artikel führt Sie durch die drei JavaScript-Paketmanager (npm, Yarn, Pnpm), vergleicht diese drei Paketmanager und spricht über die Unterschiede und Beziehungen zwischen npm, Yarn und Pnpm. Ich hoffe, dass er für alle hilfreich ist Hilfe, wenn Sie Fragen haben, weisen Sie diese bitte darauf hin!

Was tun, wenn ein NPM-React-Installationsfehler auftritt? Was tun, wenn ein NPM-React-Installationsfehler auftritt? Dec 27, 2022 am 11:25 AM

Lösung für den npm-react-Installationsfehler: 1. Öffnen Sie die Datei „package.json“ im Projekt und suchen Sie das Abhängigkeitsobjekt. 2. Verschieben Sie „react.json“ nach „devDependencies“. 3. Führen Sie „npm audit“ im Terminal aus. Produktion“, um die Warnung zu beheben.

Ein Artikel, der package.json und package-lock.json analysiert Ein Artikel, der package.json und package-lock.json analysiert Sep 01, 2022 pm 08:02 PM

Dieser Artikel gibt Ihnen eine detaillierte Erklärung der Dateien package.json und package-lock.json. Ich hoffe, er wird Ihnen hilfreich sein!

Was soll ich tun, wenn der Knoten den Befehl npm nicht verwenden kann? Was soll ich tun, wenn der Knoten den Befehl npm nicht verwenden kann? Feb 08, 2023 am 10:09 AM

Der Grund, warum der Knoten den Befehl npm nicht verwenden kann, liegt darin, dass die Umgebungsvariablen nicht richtig konfiguriert sind. Die Lösung ist: 1. Öffnen Sie „Systemeigenschaften“ 2. Suchen Sie nach „Umgebungsvariablen“ -> „Systemvariablen“ und bearbeiten Sie dann die Umgebung Variablen; 3. Suchen Sie den Speicherort des NodeJS-Ordners. 4. Klicken Sie auf „OK“.

Lassen Sie uns über die NPM-Konfiguration inländischer Spiegel (Taobao-Spiegel) sprechen. Lassen Sie uns über die NPM-Konfiguration inländischer Spiegel (Taobao-Spiegel) sprechen. Aug 09, 2022 pm 12:06 PM

npm ist das Paketverwaltungstool für die Bibliothek node.js. Da sich die Spiegeladresse im Ausland befindet, ist die Installation der Bibliothek langsam. Sie können die Spiegeladresse in eine inländische Adresse (Taobao-Spiegel) ändern Bibliothek.

Was tun, wenn npm node gyp ausfällt? Was tun, wenn npm node gyp ausfällt? Dec 29, 2022 pm 02:42 PM

npm node gyp schlägt fehl, weil „node-gyp.js“ nicht mit der Version von „Node.js“ übereinstimmt. Die Lösung ist: 1. Löschen Sie den Knotencache über „npm cache clean -f“ 2. Über „npm install -“ g n“ Installieren Sie das n-Modul. 3. Installieren Sie die Version „node v12.21.0“ über den Befehl „n v12.21.0“.

Dieser Artikel hilft Ihnen, die Prinzipien von npm zu verstehen Dieser Artikel hilft Ihnen, die Prinzipien von npm zu verstehen Aug 09, 2022 am 09:23 AM

npm ist das Paketverwaltungstool der JavaScript-Welt und das Standardpaketverwaltungstool für die Node.js-Plattform. Über npm können Sie Code installieren, freigeben, verteilen und Projektabhängigkeiten verwalten. Dieser Artikel wird Ihnen helfen, die Prinzipien von npm zu verstehen. Ich hoffe, er wird Ihnen hilfreich sein!

Welche Beziehung besteht zwischen npm und node.js? Welche Beziehung besteht zwischen npm und node.js? Jul 11, 2022 pm 06:00 PM

npm bedeutet auf Chinesisch „Node-Paketmanager“. Es wird zusammen mit Nodejs installiert und verwaltet Plug-Ins von Drittanbietern. Teilen und verteilen Sie Code über npm und verwalten Sie Knotenprojektabhängigkeiten.

See all articles