node を使用して Mac システムのバージョンを取得するにはどうすればよいですか?次の記事では、nodeを使ってMacのシステムバージョンを効率的に取得する方法を紹介しますので、お役に立てれば幸いです。
#今日、突然互換性要件に遭遇しました。これは、macOS のバージョンごとに異なる互換性処理が必要です。
意外なことに、一見単純な要件にも紆余曲折がありましたが、幸いなことに最終的には問題は解決されました。
同じようなニーズを持つ他の学生の参考のために、問題を解決するプロセスをここに記録します。
システム タイプの取得
Mac システムでは互換性を処理する必要があるため、まずシステム タイプを区別する必要があります。 # 関連する API を提供します。システム タイプを直接取得するには、os.platform() を使用するだけです。 <pre class='brush:php;toolbar:false;'>import { platform } from &#39;os&#39;;
console.log(platform()); // &#39;darwin&#39;</pre>
対応する macOS の名前は
ではなく darwin
であることに注意してください。
システム タイプは、
パッケージを通じて取得するだけでなく、process.platform を通じて取得することもできます。 <pre class='brush:php;toolbar:false;'>import { platform } from &#39;process&#39;;
console.log(platform); // &#39;darwin&#39;</pre>
ノードに詳しい学生の多くは、この時点で、
os.release を通じてシステム バージョンをすぐに取得できると言うでしょう。 () 。ただし、os.release()
を実行すると、その結果が従来の理解と一致していないことがわかります。 たとえば、システムのバージョンは
ですが、 os.release()
の実行結果は 21.1.0
です。 View
node は uname(3) を通じてオペレーティング システムを決定しているため、実行結果は従来の常識に反していることがわかります。
コマンドラインでシステムバージョンを取得するos.release()
で取得するシステムバージョンはわかりにくいので、ソリューションは実際のシステムのバージョン番号を直接取得できますか? mac には、システム情報を直接取得できる
コマンドが存在します。 <pre class='brush:php;toolbar:false;'>$ sw_vers
ProductName: macOS
ProductVersion: 12.0.1
BuildVersion: 21A559</pre>
コマンドがシステム バージョン 12.0.1
を直接取得していることがわかります。 他のシステム情報が必要ない場合は、コマンド ライン パラメータを追加し、コマンド ラインの結果をフィルタリングすることで、システム バージョンを直接取得できます。
$ sw_vers -ProductVersion 12.0.1
コマンド ラインでは大文字と小文字が区別されないため、コマンド ライン パラメータの大文字と小文字は関係ありません。
-productversion または -ProductVersion
と記述することもできます。 コマンドラインの書き方がわかったので、あとはノードでコマンドラインを呼び出すだけです。
import { execSync } from 'child_process'; console.log(execSync('sw_vers -ProductVersion', { encoding: 'utf-8' })); // 12.0.1システム バージョンを効率的に取得する
ノードのサブプロセスを通じてコマンド ライン コマンドを実行すると、正しいシステム バージョンを取得できます。ただし、このメソッドにはパフォーマンス上の欠陥があり、コマンド ラインを実行するためにサブプロセスを作成する必要があり、
os.release() メソッドと比較してコストが高くなります。 以前の
の使用に関する問題は、返される結果が従来の常識に反していて、実際には正しい結果ですが、マッピングが必要であることです。 したがって、システム バージョンは、
とマッピング テーブルを通じてエレガントに取得できます。 <pre class='brush:php;toolbar:false;'>import os from &#39;os&#39;;
const macVersionMap = new Map([
[21, [&#39;Monterey&#39;, &#39;12&#39;]],
[20, [&#39;Big Sur&#39;, &#39;11&#39;]],
[19, [&#39;Catalina&#39;, &#39;10.15&#39;]],
[18, [&#39;Mojave&#39;, &#39;10.14&#39;]],
[17, [&#39;High Sierra&#39;, &#39;10.13&#39;]],
[16, [&#39;Sierra&#39;, &#39;10.12&#39;]],
[15, [&#39;El Capitan&#39;, &#39;10.11&#39;]],
[14, [&#39;Yosemite&#39;, &#39;10.10&#39;]],
[13, [&#39;Mavericks&#39;, &#39;10.9&#39;]],
[12, [&#39;Mountain Lion&#39;, &#39;10.8&#39;]],
[11, [&#39;Lion&#39;, &#39;10.7&#39;]],
[10, [&#39;Snow Leopard&#39;, &#39;10.6&#39;]],
[9, [&#39;Leopard&#39;, &#39;10.5&#39;]],
[8, [&#39;Tiger&#39;, &#39;10.4&#39;]],
[7, [&#39;Panther&#39;, &#39;10.3&#39;]],
[6, [&#39;Jaguar&#39;, &#39;10.2&#39;]],
[5, [&#39;Puma&#39;, &#39;10.1&#39;]],
]);
const getMacRelease = (release: string) => {
const macRelease = release ?? os.release();
const firstReleaseVersion = Number(macRelease.split(&#39;.&#39;)[0]);
const [name, version] = macVersionMap.get(firstReleaseVersion) || [
&#39;Unknown&#39;,
&#39;&#39;,
];
return {
name,
version,
};
};
console.log(getMacRelease()) // 12</pre>
Mac が新しくリリースされたシステムを認識しやすくするために、新しいシステムのバージョン名は
として認識され、新しいバージョンは空の文字列として認識されます。 これはモバイル モデル スコアリング プラットフォームを学習するためのものです。バージョンが空の場合、デフォルトは上位バージョンとなり、下位バージョンの互換性処理には影響しません。
これで、ノードを介してシステムのバージョンをエレガントに取得できるようになりました。
ノード関連の知識の詳細については、
nodejs チュートリアル以上がノードを使用して Mac システムのバージョンを取得する方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター
