


Wie konfiguriere ich die Node-Projektumgebung zur Unterstützung der Skalierbarkeit?
Dieser Artikel stellt Ihnen die Konfigurationsumgebung vor, damit das Node-Projekt skalierbare Methoden unterstützt. Ich hoffe, dass es für alle hilfreich ist!
Da es nur wenige Node-Projektentwicklungen gibt, die keinen Wechsel von Umgebungsvariablen beinhalten, stoßen wir jedoch immer darauf, wenn wir Front-End-Projektentwicklungen durchführen. In Vue-Projekten können Sie beispielsweise .env.xxx.xxx konfigurieren erfordert die Konfiguration von Umgebungsvariablen. Es sollte mit VUE_APP_
beginnen. Warum? Lassen Sie uns gemeinsam untersuchen, wie die Umgebungsvariablen des Vue-Projekts geladen und analysiert werden, und dann werden wir sie in das Node-Projekt übertragen. [Empfohlenes Lernen: „nodejs TutorialVUE_APP_
开头,Why?,我们就一起来探索一下Vue项目的环境变量是怎么加载并解析的,我们再移植到Node项目中。【推荐学习:《nodejs 教程》】
探索Vue中环境配置的加载:
先来看看Vue CLI关于模式和环境变量的说明,我们看到有这么一段话:想要了解解析环境文件规则的细节,请参考 dotenv。我们也使用 dotenv-expand 来实现变量扩展 (Vue CLI 3.5+ 支持)。我们先用Vue Cli来创建一个Vue项目。
探索第一步:
在package.json
中通过执行scripts
的命令都使用到了@vue/cli-service
包
探索第二步:
@vue/cli-service
包确实安装了官网提示的两个依赖包,并在bin
目录下的vue-cli-service.js
文件中找到了关键类Service
。
探索第三步:
在
Service
中我们找到了加载环境配置的关键函数,其中的两个path
分别指:.env.mode
和.env.mode.local
,也就是我们的环境变量文件可以支持带.local
也可以不带。思考
load
两次的作用?
探索第三步:
指定的前缀是怎么回事?我们在
util
目录下找到了答案:resolveClientEnv.js
,最终是由DefinePlugin
插件加载到了全局的配置中。思考
BASE_URL
的设置?
为携带webpack的Node项目中增加环境配置
准备webpack.config.js
新增env-helper.js,我们一起来实现一下:
必备依赖装一下
npm install dotenv --save npm install dotenv-expand --save
解析环境变量文件
/** * 解析环境变量文件 * @param {*} mode */ const loadEnv = (mode) => { const basePath = path.resolve(__dirname, `.env${mode ? `.${mode}` : ``}`); const localPath = `${basePath}.local`; const load = (envPath) => { try { const env = dotenv.config({ path: envPath, debug: process.env.DEBUG }); dotenvExpand(env); } catch (err) { if (err.toString().indexOf("ENOENT") < 0) { console.error(err); } } }; load(localPath); load(basePath); };
符合前缀的环境变量对象
将符合正则条件的和特殊的进行整合后返回,通过注入到
DefinePlugin
插件中。
/** * 获取符合前缀规则的环境变量对象 */ const prefixRE = /^XXTX_APP_/; const resolveClientEnv = () => { const env = {}; Object.keys(process.env).forEach((key) => { if (prefixRE.test(key) || key === "NODE_ENV") { env[key] = process.env[key]; } }); return env; };
升级webpack.config.js来演示环境变量读取
增加演示插件和NODE_ENV配置
const webpack = require("webpack"); const { loadEnv, resolveClientEnv } = require("./env-helper"); // 解析环境配置文件 // 通过cross-env 再scripts中配置NODE_ENV=development loadEnv(process.env.NODE_ENV); // 获取符合规则的环境配置对象 const env = resolveClientEnv(); const HelloWorldPlugin = require("./hello-world"); module.exports = { mode: "development", plugins: [ new webpack.DefinePlugin(env), new HelloWorldPlugin({ options: true }), ], };
在我们的webpack插件中使用环境变量
class HelloWorldPlugin { apply(compiler) { compiler.hooks.done.tap("HelloWorldPlugin", () => { console.log("Hello World!"); console.log("[ XXTX_APP_NAME ] >", process.env.XXTX_APP_NAME); console.log("[ XXTX_APP_BASE_URL ] >", process.env.XXTX_APP_BASE_URL); }); } } module.exports = HelloWorldPlugin;
查看输出结果
结尾说明:
-
我们可以将
env-helper.js
移植到其他的Node
"]Erkunden Sie das Laden der Umgebungskonfiguration in Vue:
🎜Lassen Sie uns zuerst einen Blick darauf werfenVue CLI🎜 In Bezug auf die Beschreibung von Modus- und Umgebungsvariablen haben wir diesen Absatz gesehen: Möchten Sie die Details der Regeln für erfahren? Informationen zum Parsen von Umgebungsdateien finden Sie unter dotenv🎜. Wir verwenden auch dotenv-expand🎜, um die Variablenerweiterung zu implementieren (Vue CLI 3.5+ unterstützt) . Wir verwenden zunächst Vue Cli, um ein Vue-Projekt zu erstellen. 🎜🎜Erkunden Sie den ersten Schritt: 🎜🎜Führen Siein <code>package.json
aus. Die Befehle aller Skripte verwenden alle das Paket@vue/cli-service
🎜🎜🎜🎜Erkunden Sie den zweiten Schritt: strong Das Paket >🎜🎜
@vue/cli-service
installiert die beiden von der offiziellen Website angeforderten Abhängigkeitspakete und denvue-cli-service im Verzeichnis <code>bin
Die SchlüsselklasseService
wurde in der .js-Datei gefunden. 🎜🎜🎜🎜Erkunden Sie den dritten Schritt:🎜
- 🎜在Service haben wir die Schlüsselfunktion zum Laden der Umgebungskonfiguration gefunden. Die beiden
path
beziehen sich auf:.env.mode
bzw..env .mode.local
, das heißt, unsere Umgebungsvariablendatei kann.local
unterstützen oder nicht. 🎜 - 🎜Denken Sie zweimal über die Rolle von
load
nach? 🎜
🎜🎜Erkunden Sie Schritt drei:🎜
- 🎜Was ist mit dem angegebenen Präfix los? Die Antwort fanden wir im Verzeichnis
util
:resolveClientEnv.js
, das schließlich vom Plug-inDefinePlugin
in die globale Konfiguration geladen wurde. 🎜 - 🎜Denken Sie über die Einstellungen von
BASE_URL
nach? 🎜
🎜🎜
🎜
Umgebungskonfiguration zum Node-Projekt hinzufügen, das Webpack trägt
🎜Webpack-Projektumgebung vorbereiten🎜🎜🎜Webpack.config vorbereiten. js🎜🎜🎜🎜Fügen Sie env-helper.js hinzu, lassen Sie es uns gemeinsam implementieren:🎜🎜Installieren die notwendigen Abhängigkeiten🎜rrreee🎜Umgebungsvariablendateien analysieren🎜rrreee🎜Umgebungsvariablenobjekte, die dem Präfix entsprechen🎜
🎜erfüllen die regulären Bedingungen nach der Integration Mit dem speziellen wird es zurückgegeben und in das Plug-in
rrreee🎜Aktualisieren Sie webpack.config.js, um das Lesen von Umgebungsvariablen zu demonstrieren🎜🎜Demonstrations-Plugin hinzufügen und NODE_ENV-Konfiguration🎜rrreee🎜Verwendung von Umgebungsvariablen in unserem Webpack-Plugin🎜rrreee🎜Siehe die Ausgabe🎜🎜DefinePlugin
eingefügt. 🎜🎜
Schlussbemerkung:
- 🎜Wir können
env-helper.js
nach In anderemNode
-Projekten kann nur die Montagekonfigurationsmethode geändert werden. 🎜 Dieses Mal basiert der Code vollständig auf der CV-Methode. Haben Sie es gelernt?
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmierunterricht! !
- 🎜在Service haben wir die Schlüsselfunktion zum Laden der Umgebungskonfiguration gefunden. Die beiden
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich die Node-Projektumgebung zur Unterstützung der Skalierbarkeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Dreamweaver Mac
Visuelle Webentwicklungstools

Dreamweaver CS6
Visuelle Webentwicklungstools