Von Github kommen? Eine bessere Betrachtungserfahrung dieses Tutorials ist auf der Website unten zu sehen: https://pokedpeter.dev
In diesem Tutorial werden Sie angezeigt, wie Sie ein Barebones -Knoten (JavaScript) von Grund auf die folgenden Leckereien erstellen:
Voraussetzungen:
Lassen Sie uns ein Barebones -Knotenprojekt einrichten
Erstellen Sie unser Knotenprojekt. Kann alle Eingabeaufforderungoptionen durchspringen.
mkdir project
cd project
npm init Eine Datei namens package.json wird mit den von Ihnen ausgewählten Optionen eingerichtet. Sie können die Schnittstellenoptionen überspringen und sich mit den Standardeinstellungen durchführen, indem Sie npm init -y ausführen
{
"name" : " project " ,
"version" : " 1.0.0 " ,
"description" : " " ,
"main" : " index.js " ,
"scripts" : {
"test" : " echo " Error: no test specified " && exit 1 "
},
"author" : " " ,
"license" : " ISC "
}Das wichtigste ausführbare Skript wird nicht automatisch erstellt. Erstellen.
touch index.js Setzen Sie für Testzwecke etwas Grundlegendes in index.js ein.
console . log ( 'Hello World' ) ;Testen Sie es aus der CLI:
node index.js
Das gibt Ihnen eine Konsolenausgabe:
Hello World
JavaScript wird nicht mit integrierten Standardbibliotheken ausgestattet. Der empfohlene Ansatz besteht darin, NPM -Pakete zu installieren. Versuchen wir ein Beispiel. Wir werden Lodash installieren, eine beliebte Bibliothek mit praktischen Versorgungsunternehmen.
npm install lodash
Hier ist die Ausgabe:
added 1 package, and audited 4 packages in 987ms
found 0 vulnerabilities
Jetzt, da wir Lodash intalliert haben, können wir es jetzt in unserer App verwenden. Öffnen Sie index.js erneut und aktualisieren Sie es zu übereinstimmen:
const _ = require('lodash);
console.log(_.snakeCase('Hello World'));
Führen Sie es aus und Sie werden die folgende Ausgabe sehen:
hello_world
Zeigen Sie die Datei package.json erneut an und beachten Sie den Abschnitt "Neue dependencies mit dem Lodash -Eintrag:
"dependencies" : {
"lodash" : " ^4.17.21 "
}Tipp
Um den Dateiinhalt aus der CLI schnell anzusehen, geben Sie: cat package.json ein
Zeigen Sie Ihre Projektdateien an und beachten Sie, dass ein Ordner node_modules erstellt wurde:
$ ls -l
index.js
node_modules
package-lock.json
package.jsonIn diesem Ordner werden Ihre Abhängigkeiten gespeichert. Schauen wir sie uns an:
$ ls node_modules
@types lodash typescriptFügen wir unserem Barebones -Knotenprojekt Typscript hinzu.
Installieren Sie die Abhängigkeit von Typscript als Entwicklungsdepeedz. Alle Typscript-Abhängigkeiten sind nur während der Entwicklung erforderlich, also tun wir --save-dev
npm install --save-dev typescriptInstallieren Sie Definitionen für Typscript -Typen für den Knoten:
npm install --save-dev @types/nodeTipp
Installieren Sie mehrere Pakete in einem GO, indem Sie sie in einer einzelnen Zeile kombinieren: npm install --save-dev typescript @types/node
Schauen Sie sich die Abhängigkeiten in package.json an. Hier ist der relevante Teil:
{
"devDependencies" : {
"@types/node" : " ^20.4.9 " ,
"typescript" : " ^5.1.6 "
}
}Initialise TypeScript durch Ausführen des folgenden Befehls überall in Ihrem Projekt.
npx tsc --init Dadurch wird eine tsconfig.json -Datei mit Standardeinstellungen erstellt:
Created a new tsconfig.json with:
target: es2016
module: commonjs
strict: true
esModuleInterop: true
skipLibCheck: true
forceConsistentCasingInFileNames: true
Wir verwenden npx , das lokal installierte Binärdateien ausführt, die über package.json installiert wurden.
Warnung
Einige Installationsleitfäden empfehlen die Installation von Typscript weltweit sudo npm install -g typescript . Ich würde empfehlen, eine lokale Version zu installieren (dh in Ihrem Projektordner)
Die globale Version kann sich von der für Ihr Projekt installierten lokalen Version unterscheiden. Das Ausführen tsc verwendet direkt die globale Version. Wenn tsc als Teil von NPM in Ihrem Projekt ausgeführt wird, wird die lokale Version verwendet.
In tsconfig.json sind standardmäßig mehrere Optionen festgelegt. Es gibt viele kommentierte Optionen - nicht unten gezeigt.
{
"compilerOptions" : {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* Basic Options */
"target" : " es5 " , /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
"module" : " commonjs " , /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
/* Strict Type-Checking Options */
"strict" : true , /* Enable all strict type-checking options. */
/* Module Resolution Options */
"esModuleInterop" : true , /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
/* Advanced Options */
"skipLibCheck" : true , /* Skip type checking of declaration files. */
"forceConsistentCasingInFileNames" : true /* Disallow inconsistently-cased references to the same file. */
}
}Einige empfohlene Optimierungen an den Standardeinstellungen:
"target" : " es2015 " , // I'd recommend es2015 at a minimum. es5 is ancient.
"outDir" : " build " , // Keep our compiled javascript in the build directory
"rootDir" : " src " , // Keep our source code in a separate directory
"noImplicitAny" : true , // We're using Typescript yeah? And not adding Typescript to an existing project. Enforce good habits from the start.
"lib" : [ " es2020 " ], // Setting this excludes DOM typings as we are using Node. Otherwise you'll run into errors declaring variables like 'name' In Bezug auf target . Im Allgemeinen unterstützen neuere Versionen von Knoten die neueren ECMA -Funktionen. Die folgende Website ist eine großartige Ressource, um zu sehen, welche ECMA -Funktionen für jede Version des Knotens verfügbar sind:
https://node.green/
Keine Notwendigkeit für Index.js mehr:
rm index.jsRichten Sie unseren Projektquellcode ein:
mkdir src
cd src
touch index.ts Fügen Sie in index.ts etwas Grundlegendes hinzu, um es zu testen:
console . log ( 'Hello typescript!' ) ;Kompilieren Sie unser Barebones -Projekt.
npx tsc Die kompilierte Ausgabe als JavaScript finden Sie im Verzeichnis /build . Es enthält index.js , die unsere src/index.ts widerspiegeln
Inhalt von index.js:
"use strict" ;
console . log ( 'Hello World!' ) ;Sie sind jetzt bereit, JavaScript -Projekte mit TypeScript zu erstellen!
Bis vor kurzem war Tslint der Anlaufpunkt für Typscript-Code-Linter, aber es ist jetzt veraltet, da das Projekt in Eslint konsolidiert wurde. Hier ist die offizielle Homepage:
Webseite:
https://eslint.org
Die Github -Site:
https://github.com/typescript-eslint/typescript-eslint
Installieren Sie ESLINT (natürlich als Dev -Abhängigkeit)
npm install --save-dev eslintLassen Sie uns unsere Lint -Konfiguration mit dem Init -Befehl von Eslint in Init einrichten:
npx eslint --initBefolgen Sie die Eingabeaufforderungen. Wir verwenden Knoten, sodass kein Browserunterstützung erforderlich ist. Sie werden gefragt, ob Sie die abhängigen Typscript -Plugins installieren möchten. Mach das.
✔ How would you like to use ESLint ? · problems
✔ What type of modules does your project use ? · esm
✔ Which framework does your project use ? · none
✔ Does your project use TypeScript ? · No / Yes
✔ Where does your code run ? · node
✔ What format do you want your config file to be in ? · JSON
The config that you ' ve selected requires the following dependencies:
@typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest
✔ Would you like to install them now with npm? · No / Yes
Successfully created .eslintrc.json file in /your/projectWeitere Informationen zur FINT -Konfiguration unten:
https://eslint.org/docs/user-guide/configuring
Mit den oben ausgewählten Optionen sieht unsere Datei .esLintrc.json so aus:
{
"env" : {
"es2020" : true ,
"node" : true
},
"extends" : [
" eslint:recommended " ,
" plugin:@typescript-eslint/recommended "
],
"parser" : " @typescript-eslint/parser " ,
"parserOptions" : {
"ecmaVersion" : 11 ,
"sourceType" : " module "
},
"plugins" : [
" @typescript-eslint "
],
"rules" : {
}
}Möglicherweise haben Sie eine der Fragen während des Eslint -Init -Prozesses bemerkt: Folgendes:
? How would you like to use ESLint ? …
To check syntax only
▸ To check syntax and find problems
To check syntax, find problems, and enforce code styleDie letzte Option erzwingt zusätzlich einen Codestil. Wenn Sie diese Option auswählen, lautet eine Follow -up -Frage:
? How would you like to define a style for your project ? …
▸ Use a popular style guide
Answer questions about your style
Inspect your JavaScript file(s)Wenn Sie sich für einen beliebten Stilhandbuch entscheiden, haben Sie die Auswahl aus den folgenden:
? Which style guide do you want to follow ? …
▸ Airbnb: https://github.com/airbnb/javascript
Standard: https://github.com/standard/standard
Google: https://github.com/google/eslint-config-google
XO: https://github.com/xojs/eslint-config-xoIch würde empfehlen, die oben genannten Style Guides zu erforschen und mit einer zu gehen, die Ihren Vorlieben übereinstimmt.
Als nächstes erstellen wir eine andere Konfigurationsdatei in Klagegtext, mit der wir Dateien und Verzeichnisse vom Lining ausschließen können:
touch .eslintignoreUnd fügen Sie der Datei den folgenden Inhalt hinzu:
node_modules
build
Wir möchten nicht auf unserem kompilierten JavaScript -Code legt.
Standardmäßig sind die Standardregeln aktiviert. Sehen Sie sich die gekrönten Artikel in der Liste unter:
https://eslint.org/docs/rules/
Lassen Sie uns beispielsweise versuchen, die no-extra-semi -Regel zu brechen.
Versuchen Sie, ein Semikolon zum Ende der Linie in Index.TS hinzuzufügen, und führen Sie den FINTE-Check durch, um einen Fehler anzuzeigen:
console . log ( 'Hello typescript' ) ; ;Und dann:
npx eslint srcWas führt zu:
1:34 error Unnecessary semicolon @typescript-eslint/no-extra-semi
✖ 1 problem (1 error, 0 warnings)
1 error and 0 warnings potentially fixable with the `--fix` option.
Warnung
Bei der Installation der Airbnb -Option habe ich festgestellt, dass Eslint die .TS -Dateierweiterung übergeben muss:
npx eslint src --ext .ts Erstellen Sie ein Skript dafür im package.json , damit wir es bequem nennen können:
"scripts" : {
...
"lint" : " eslint src --ext .ts "
},Nur dann anwendbar, wenn Sie auf NPM <v7 <v7 anwendbar sind. Wenn Sie jedoch das NPM -Skript ausführen und Probleme gefunden werden, werden die folgenden NPM -Fehlermeldungen angezeigt, die unter der Ausgabe von ESLINT angehängt sind:
> eslint src --ext .ts
/home/user/dev/test/src/index.ts
1:1 warning Unexpected console statement no-console
1:21 error Missing whitespace after semicolon semi-spacing
1:22 error Unnecessary semicolon no-extra-semi
✖ 3 problems (2 errors, 1 warning)
2 errors and 0 warnings potentially fixable with the ` --fix ` option.
npm ERR ! code ELIFECYCLE
npm ERR ! errno 1
npm ERR ! [email protected] lint: ` eslint src --ext .ts `
npm ERR ! Exit status 1
npm ERR !
npm ERR ! Failed at the [email protected] lint script.
npm ERR ! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR ! A complete log of this run can be found in:
npm ERR ! /home/user/.npm/_logs/2021-08-18T15_27_55_318Z-debug.logIch sehe den NPM -Fehler bei NPM V7 nicht (z. B. bei Verwendung von Knoten 16.6.2)
Jede Regel kann einer von drei Staaten sein:
| Regelmodus | Beschreibung |
|---|---|
| 0 oder "aus" | Deaktiviert die Regel |
| 1 oder "warnen" | Warnung, Linter fällt nicht aus |
| 2 oder "Fehler" | Fehler, Linter fällt aus |
Regeln können als Schlüssel zu einem Regelnobjekt in der Lint -Konfigurationsdatei hinzugefügt werden .esLintrc.json:
{
"root" : true ,
"parser" : " @typescript-eslint/parser " ,
"plugins" : [ ... ],
"extends" : [ ... ],
"rules" : {
..your rules go here..
}
}Finden Sie Regeln unter eslint.org:
https://eslint.org/docs/rules/
Lassen Sie uns die stilistische Regel mit dem Namen "Comma-Dangle" testen. Wir möchten den Benutzer warnen, wenn ein Array mit mehreren Zeilen ein Komma für das letzte Element fehlt.
Fügen Sie die Regel hinzu:
"rules" : {
"comma-dangle" : [
" warn " , {
"arrays" : " always-multiline "
}
]
}Lesen Sie die Regeldetails auf der Website. Für viele Regeln ist einiges an Anpassungen zulässig. In diesem Beispiel möchten wir in allen Szenarien das baumelnde Kommas durchsetzen.
Ändern Sie index.ts mit dem folgenden Code:
const movies = [
'Lord of the Flies' ,
'Battle Royale'
] ;
movies . pop ( ) ;Führen Sie den Linter aus:
npx eslint srcJetzt sollten wir die folgende Warnung sehen:
3:18 warning Missing trailing comma comma-dangle
✖ 1 problem (0 errors, 1 warning)
0 errors and 1 warning potentially fixable with the ` --fix ` option. Hinweis In der Ausgabe gibt es eine Option, um das Problem zu beheben. Führen Sie den Linter mit der Option --fix aus:
npx eslint --fix src Diesmal gibt es keine Ausgabe aus dem Linter und wenn wir index.ts überprüfen. Wir werden feststellen, dass das baumelnde Komma automatisch hinzugefügt wurde:
const movies = [
'Lord of the Flies' ,
'Battle Royale' , // <-- dangling comma added
] ;
movies . pop ( ) ; Wir werden hübscher verwenden, um Code zu formatieren. Es handelt sich um eine Meinung nach dem Code, das viele Sprachen unterstützt, darunter TypeScript, JavaScript und andere Formate, die Sie für Konfigurationen wie JSON und YAML verwenden.
https://prettier.io
Alternativ können Sie sich bei Eslint festhalten, um Ihren Code stilistisch zu formatieren. Schöner unterscheidet sich darin, dass es Ihren Code nicht ändert, es sei denn, Sie setzen eine der kleinen Handvoll Optionen.
Installieren Sie das Modul:
npm install --save-dev prettierErstellen Sie die Konfigurationsdatei. Auf diese Weise informiert sich die Redakteure und andere Tools, dass Sie hübscher verwenden:
echo {} > .prettierrc.jsonSie müssen der Konfigurationsdatei wahrscheinlich keine Optionen hinzufügen, da die meisten die Transformation Ihres Codes beinhalten. Überlassen Sie das am besten auf Eslint und lassen Sie sich einfach mit der Formatierung befassen.
Erstellen Sie eine Datei ignorieren. Dadurch werden die schöneren CLI und die Redakteure wissen, welche Dateien von der Formatierung ausgeschlossen werden sollen.
touch .prettierignore Fügen Sie .prettierignore die folgenden Zeilen hinzu:
node_modules
buildTesten Sie hübscher mit dem folgenden Befehl. Es wird nichts überschreiben, nur den formatierten Code ausgibt:
npx prettier srcBasierend auf unserer letzten Änderung zu Index.ts wird die Ausgabe sein:
const movies = [ "Lord of the Flies" , "Battle Royale" ] ;
movies . pop ( ) ;Wir können sehen, dass das Multi-Line-Array in eine einzelne Zeile formatiert wurde.
Schreiben Sie die Änderungen in die Datei, indem Sie den Befehl mit der Option -Schreiben Sie: --write :
npx prettier --write srcDadurch werden die Dateien aufgeführt, die formatiert wurden:
src/index.ts 279msAngesichts von Eslint und schöneren können Code formatieren, können Sie erwarten, dass einige Konflikte auftreten. Prettierer hat Regeln speziell für Eslint erstellt, die im Grunde genommen alle Regeln deaktiviert, die in Kombination mit schöneren oder widersprüchlichen oder widersprüchlichen sind.
Der erste ist eslint-config-prettier :
https://github.com/prettier/eslint-config-prettier
Diese Konfiguration schaltet alle Regeln aus, die unnötig sind oder mit schöneren Konflikten in Konflikt stehen. Installieren Sie es mit dem folgenden Befehl:
npm install --save-dev eslint-config-prettier Fügen Sie es dann in die letzte Zeile Ihres extends in der Eslint -Konfiguration .eslintrc.json hinzu:
{
"extends" : [
"eslint:recommended" ,
"plugin:@typescript-eslint/recommended" ,
"plugin:@typescript-eslint/eslint-recommended" ,
"prettier" // <-- Add this
] ,
}Sie können den folgenden Befehl in jeder Datei ausführen, um zu überprüfen, ob es keinen Konflikt zwischen Eslint und schöner gibt:
npx eslint-config-prettier src/index.tsWenn alles gut geht, sollten Sie die folgende Reaktion erhalten:
No rules that are unnecessary or conflict with Prettier were found. Als nächstes ist es eslint-plugin-prettier zu installieren:
https://github.com/prettier/eslint-plugin-prettier
Läuft hübscher als Eslint -Regel und meldet Unterschiede als individuelle Eslint. Installieren Sie es mit dem folgenden Befehl:
npm install --save-dev eslint-plugin-prettier Aktualisieren Sie dann Ihre .eslintrc.json -Datei wie folgt:
{
"plugins" : [ " prettier " ],
"rules" : {
"prettier/prettier" : " error "
}
}Suchen Sie nach dem folgenden Plugin:
ESLint - von Dirk Baeumer
Suchen Sie nach dem folgenden Plugin:
Prettier - Code formatter - von hübscher
Drücken Sie Ctrl + Shift + I um Code zu formatieren. Sie werden aufgefordert, das Standardformatierer auszuwählen. Wählen Sie hübscher als Standard.
Suchen Sie nach dem folgenden Plugin:
Prettier ESLint - von Rebecca Weste
Diese Skripte sind auf unser TypeScript -Projekt zugeschnitten. Wir überprüfen nur .TS -Dateien.
Fügen Sie die folgenden Befehle in den Abschnitt scripts Ihres package.json hinzu.
"start:dev" : " nodemon " "lint" : " eslint --ext .ts src "
"lint-fix" : " eslint --fix --ext .ts src " "pretty" : " prettier --write 'src/**/*.ts' " Curveball ist ein Mikro -Framework zum Aufbau von APIs im Knoten. Es ist von Grund auf mit Unterstützung von Typenkript im Gegensatz zu seinem beliebteren Vorgänger KOA aufgebaut.
https://curveballjs.org/
Installieren Sie es:
npm install @curveball/core Kopieren Sie das Beispiel von der Website in index.ts . Das einzige, was wir ändern werden, ist die Portnummer. Aus zwei Gründen. Einer, Port 80 kann blockiert werden. Zwei. Durch das Ausführen von verschiedenen Ports können wir mehrere Knotenprojekte gleichzeitig ausgeführt werden.
import { Application } from '@curveball/core' ;
const app = new Application ( ) ;
app . use ( async ctx => {
ctx . response . type = 'text/plain' ;
ctx . response . body = 'hello world' ;
} ) ;
app . listen ( 9000 ) ;Starten Sie den Server im Dev -Modus mit dem zuvor erstellten Skript:
npm run start:devSie erhalten die folgende Ausgabe, wenn Nodemon auf Dateiänderungen hört:
> [email protected] start:dev /home/your_name/project
> nodemon
[nodemon] 2.0.4
[nodemon] to restart at any time, enter ` rs `
[nodemon] watching path(s): src/ ** / *
[nodemon] watching extensions: ts,jsNachdem Sie eine Codeänderung vorgenommen haben, beobachten Sie die Serverkonsolenausgabe, um bei der Arbeit Nodemon zu sein. Aktualisieren Sie auch die Webseite, um Updates anzuzeigen.
Richten Sie nach Codeänderungen für die Entwicklung automatisch nachladen. Installieren Sie nodemon , um die Dateiänderungen und ts-node zu überwachen, um den TypeScript-Code direkt auszuführen, anstatt zu kompilieren und dann an node weiterzugeben.
npm install --save-dev ts-node nodemon Fügen Sie eine nodemon.json -Konfiguration hinzu. Dadurch konfiguriert Nodemon so, dass Änderungen an .ts- und .js -Dateien in Ihrem Quellcode -Verzeichnis und dann den Exec -Befehl nach den Änderungen ausgeführt werden.
{
"watch" : [ " src " ],
"ext" : " .ts,.js " ,
"ignore" : [],
"exec" : " ts-node ./src/index.ts "
} Fügen Sie ein NPM -Skript in package.json hinzu, um nodemon für die Entwicklung zu starten:
"start:dev" : " nodemon " Führen Sie npm run start:dev aus, um den Reload -Prozess zu starten.
Installieren Sie Docker- und Lookup -Anweisungen zum Ausführen von Docker ohne Sudo - Anweisungen hier, da sie os / distrospezifisch sind.
Erstellen Sie eine docker-compose.yml Datei mit einem einzelnen Knotencontainer als Dienst:
Der Name unseres Projekts lautet "Projekt", ebenso wie der Name des Dienstes und des Containers. Wir haben eine Volumenzuordnung, die unser Projektverzeichnis auf /Projekt innerhalb des Knotencontainers abbildet. Stellen Sie zuletzt sicher, dass die Ports mit den in Ihrer Bewerbung freigelegten Ports übereinstimmen.
Weitere Details unten:
https://docs.docker.com/compose/compose-file/
version : ' 3 '
services :
project :
build : .
container_name : project
volumes :
- .:/project
ports :
- " 9000 " Erstellen Sie als nächstes Dockerfile mit den folgenden Inhalten.
FROM node:12
WORKDIR /project
COPY package.json .
RUN npm install
COPY . .
CMD [ "npm" , "run" , "start:dev" ]Dies richtet unser Projektverzeichnis im Container ein, installiert unsere Knotenpakete, kopiert den Inhalt unseres nativen Dateisystems und startet unseren Curveball -Server im Dev -Modus.
Bringen Sie nun den Container auf:
docker-compose upSie werden die folgende Ausgabe sehen:
Creating network "project_default" with the default driver
Building project
Step 1/7 : FROM node:12
---> dfbb88cfffc8
Step 2/7 : WORKDIR /project
---> Running in 86fff3a3c90b
Removing intermediate container 86fff3a3c90b
---> 5912fd119492
Step 3/7 : COPY package.json .
---> 4fa4df04cc6b
Step 4/7 : RUN npm install
---> Running in 8b814e4d75d2
...
(Node package installation happens here)
...
Removing intermediate container 8b814e4d75d2
---> 3bfd2b1a83e4
Step 5/7 : COPY . .
---> f6971fdf7fb5
Step 6/7 : EXPOSE 9000
---> Running in 2ab0a152b0a6
Removing intermediate container 2ab0a152b0a6
---> 0e883b79c1b3
Step 7/7 : CMD ["npm", "run", "start:dev"]
---> Running in f64884ae2643
Removing intermediate container f64884ae2643
---> 1abb8edf6373
Successfully built 1abb8edf6373
Successfully tagged project_project:latest
WARNING: Image for service project was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating project ...
Creating project ... done
Attaching to project
project |
project | > [email protected] start:dev /project
project | > nodemon
project |
project | [nodemon] 2.0.4
project | [nodemon] to restart at any time, enter `rs`
project | [nodemon] watching path(s): src/**/*
project | [nodemon] watching extensions: ts,js
project | [nodemon] starting `ts-node ./src/index.ts`
Sie können CTRL-C verwenden, um den Container zu stoppen.
Verwenden Sie docker-compose up -d um den Container im abgetrennten Modus zu erhöhen -er wird auf dem Brackground aufgebracht, und Sie können die Befehlszeile weiterhin weiterhin verwenden.
Wir erstellen einen Container basierend auf dem Knoten V12. Unser Arbeitsverzeichnis im Container ist als /project definiert (wobei unser Projektcode zugeordnet wird)
Die Version des installierten Knotens hängt vom installierten Betriebssystem ab und wie hoch die Pakete auf dem neuesten Stand sind.
Wenn Sie einen Knoten außerhalb der Docker -Container verwenden und an mehreren Knotenprojekten arbeiten, die jeweils unterschiedliche Versionen des Knotens benötigen, installieren Sie NVM:
https://github.com/nvm-sh/nvm
Ein großes Dankeschön an Folgendes, dass ich mir geholfen habe, dieses Tutorial zu erstellen.