[解決済み] Node.jsスクリプトの適切なハッシュバング
質問
複数の環境で動作するnode.jsのスクリプトを作成しようとしています。 特に私の場合、OS XとUbuntuの間を行ったり来たりしています。 前者では、Nodeは以下のようにインストールされています。
node
となっていますが、後者では
nodejs
. 私のスクリプトのトップで、私は持つことができます。
#!/usr/bin/env node
または
#!/usr/bin/env nodejs
どちらか一方がコマンドを指定するのではなく、nodeがインストールされていればどちらの環境でも実行可能なスクリプトとして実行させたいですね(
./script-name.js
vs.
node script-name.js
).
node.jsでバックアップのハッシュバンや、どちらでも互換性のあるハッシュバンを指定する方法はありますか?
どのように解決するのですか?
もしあなたのスクリプトがNode開発者による使用を意図しているのであれば、絶対に
#!/usr/bin/env node
としてしかNodeをインストールしていない人たちとの互換性をわざわざ試さなくてもいいのです。
nodejs
.
根拠は?
-
それはクールな子供たちがやっていることであり、もしあなたがそれをやらないなら、あなたはクールではないでしょう。次のような主要なノード プロジェクトがあります。
jshint
,
カルマ
,
バウワー
であり、さらに
npm
を使うだけです。
#!/usr/bin/env node
を実行スクリプトのシバングとして使用します。 -
クールな子供たちがやっているので、Ubuntu で Node を扱う人は誰でも
/usr/bin/node
へのシンボリックリンクとしてnodejs
. そこには 閲覧率の高い指示 を行うための手順が Stack Overflow や Web の至る所にあります。さらにnodejs-legacy
パッケージもあり、その全体の目的はあなたのためにこのシンボリックリンクを作成することでした。Node を使用している人は、Ubuntu でこの問題を修正する方法を知っていて、彼らは をしなければなりません。 Node で書かれたほとんどすべてのソフトウェアを使いたいのであれば。 -
この問題は Ubuntu 14.04 ではもう存在しないようです。Node をパージして
apt-get install nodejs
を実行すると/usr/bin/node
へのシンボリックリンクとして/etc/alternatives/node
. この問題に悩まされている人は、少数派になっているのではないでしょうか。
Nodeを読めない人を対象にしている場合でも、Nodeを読めない人のために
#!/usr/bin/env node
の手動シンボリックリンク作成またはインストールの必要性を追加するかもしれません。
nodejs-legacy
パッケージのインストールが必要な場合は、インストールドキュメントに追加してください。なお、もし誰かが
nodejs
でなく
node
を使用したプログラムを実行しようとすると、このように表示されます。
/usr/bin/env: node: そのようなファイルやディレクトリはありません
と ググってみると でググると、最初の結果で、そして何度も最初のページで修正されます。
もしあなたが、本当に、どうしても、ユーザーがソフトウェアを
nodejs
は利用できるが
node
がない場合(あるいは
node
は実際には
アマチュアパケットラジオノードプログラム
から取得したもので、2行で構成されています。
Unix &; Linux Stack Exchange
:
#!/bin/sh
':' //; exec "$(command -v nodejs || command -v node)" "$0" "$@"
console.log('Hello world!');
が、Nodeの世界ではほとんど誰もやっていないのに、本当にこんなことをする必要があるのでしょうか?
関連
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsで環境変数を読み込む
-
[解決済み] Node.jsでファイル/ディレクトリが存在するかどうかを同期的にチェックする
-
[解決済み] を付けるべきでしょうか?(shebang)を付けるべきか、またどのような形で付けるべきか?
-
[解決済み] Ubuntuでnodeパッケージマネージャを使用してパッケージをインストールすることができない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ブロックスコープの宣言は、ストリクトモード以外ではまだサポートされていません。
-
[解決済み】Mongooseで配列の値を更新する方法
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] Npmエラー - Windows NT - 解決方法
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。
-
[解決済み] Macでポート3000をロックしているプロセスを見つける(そして殺す)【終了
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
-
[解決済み】ubuntu 12.04でnodejsとnodeを比較。
-
[解決済み] awk で複数の引数を shebang (つまり #!) で使うには?