1

NodeJS内で実行するように設計されたJavaScriptがあります。そうしないと、壊れます(たとえば、を利用しますrequire())。NodeJS内にあることをランタイムチェックし、そうでない場合は明確なエラーメッセージを生成したいと思います。

コードがブラウザ内で実行されているかどうかを確認する方法を説明するこの回答を見てきました。ただし、NodeJSがあるかどうかはチェックしません。

JavaScriptがNodeJS内で実行されていることを確認するにはどうすればよいですか?

4

2 に答える 2

3

防弾ソリューションは、グローバル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;
}
于 2013-01-18T21:53:24.227 に答える
2

できることの1つは、processオブジェクトが定義されているかどうか、およびprocess.argv配列の最初の要素がノードであるかどうかを確認することです。

何かのようなもの:

if(typeof process !== 'undefined' && process.argv[0] === "node") {
    // this is node
}

ドキュメントの詳細情報。

于 2013-01-18T11:44:05.810 に答える