NodeJS内で実行するように設計されたJavaScriptがあります。そうしないと、壊れます(たとえば、を利用しますrequire()
)。NodeJS内にあることをランタイムチェックし、そうでない場合は明確なエラーメッセージを生成したいと思います。
コードがブラウザ内で実行されているかどうかを確認する方法を説明するこの回答を見てきました。ただし、NodeJSがあるかどうかはチェックしません。
JavaScriptがNodeJS内で実行されていることを確認するにはどうすればよいですか?
NodeJS内で実行するように設計されたJavaScriptがあります。そうしないと、壊れます(たとえば、を利用しますrequire()
)。NodeJS内にあることをランタイムチェックし、そうでない場合は明確なエラーメッセージを生成したいと思います。
コードがブラウザ内で実行されているかどうかを確認する方法を説明するこの回答を見てきました。ただし、NodeJSがあるかどうかはチェックしません。
JavaScriptがNodeJS内で実行されていることを確認するにはどうすればよいですか?
防弾ソリューションは、グローバルwindow
オブジェクトをチェックします。ブラウザには存在し、削除することはできません。node.jsには存在しないか、存在する場合(誰かが定義したため)、削除できます。(node.jsでは、グローバルオブジェクトが呼び出されGLOBAL
、削除できます)
これを行う関数は次のようになります。
function is_it_nodejs() {
if (typeof window === 'undefined') return true;
var backup = window,
window_can_be_deleted = delete window;
window = backup; // Restoring from backup
return window_can_be_deleted;
}
できることの1つは、process
オブジェクトが定義されているかどうか、およびprocess.argv
配列の最初の要素がノードであるかどうかを確認することです。
何かのようなもの:
if(typeof process !== 'undefined' && process.argv[0] === "node") {
// this is node
}
ドキュメントの詳細情報。