ノードとフロントエンドの違い
- フロントエンドには BOM と DOM がありますが、サーバーにはなく、ウィンドウもありません
- サーバーにはグローバルなグローバル オブジェクトがあります (ブラウザにもグローバルがありますが、属性にアクセスする場合、それらはすべてウィンドウを介してプロキシされ、グローバルに直接アクセスすることはできず、グローバルに直接アクセスすることもできません)。
console.log(global);
// global 跟 window 一样,可以循环引用
console.log(global.global.global);
プロセスプロセス(重要)
process のデフォルト値はグローバルで検索されます。
次のように書くことはできませんthis.process
。ノードにはファイルに基づいたモジュラー システムがあり、各ファイルはモジュールであり、モジュール内の this は次のように変更されます。{}
console.log(global.process);
(1) platform: この属性を使用して、現在の実行システム環境を判断できます。
console.log(process.platform);
https://nodejs.org/api/process.html#process_process_platform
(2) argv: ユーザーによって渡されたパラメータを解析できます (最初のパラメータ: node.exe、2 番目のパラメータ: 現在ノードによって実行されているファイル)
ノードファイルを実行するnode index.js a b c d
webpack --mode --config --port --process
console.log(process.argv);
例:node '28 # commander 的用法.js' --port 3000 --color red --config kaimo
let args = process.argv.slice(2);
let obj = {
};
args.forEach((item, index) => {
if (item.startsWith("--")) {
obj[item.slice(2)] = args[index + 1];
}
});
console.log(obj); // { port: '3000', color: 'red', config: 'kaimo' }
指揮官
- (TJ司令官) https://github.com/tj/commander.js/
- (yargs ウェブパック)
最初に依存関係をインストールします
npm init -y
npm install commander
最初に npm 上のすべてのモジュールをインストールして使用する必要があります (モジュールにはいくつかのプロパティも用意されており、モジュール内で直接アクセスすることもできます。たとえば、require はパラメーターに相当します)。
const program = require("commander");
let kaimo = program
.command("create")
.action(() => {
console.log("创建项目");
})
.version("3.1.3")
.name("kaimo")
.usage("怎么使用?")
.option("-p,--port <v>", "设置你的端口")
.option("-c,--color <v>", "设置你的颜色")
.option("-cf,--config <v>", "设置你的配置")
.parse(process.argv);
埋め込む:
node '28 # commander 的用法.js' -h
node '28 # commander 的用法.js' -V
node '28 # commander 的用法.js' create xxx