私の質問のタイトルは、node.jsアプリケーションからコマンドラインツールを実行する方法です。ここでの答えは、npmからインストール可能なすべてのコマンドラインユーティリティ。私はnode.jsからコマンドラインを実行することに関連する質問を見たことがありますが、私の状況では動作していないようです。具体的には、npmと同様のノードコマンドラインユーティリティを実行しようとしています(どのように使用されているのか、その機能ではない)、tilemantleと呼ばれています。node.jsアプリケーションからコマンドラインツールを実行する方法
タイルマントルのdocumentationは、タイルマントルをグローバルにインストールし、コマンドラインからプログラムを実行していることを示しています。
私がしたいことは、npm install tilemantle --save
を使ってnpmプロジェクトの一部としてローカルにtilemantleをインストールしてから、自分のプロジェクト内からtilemantleを実行することです。
私は `tilemantle = require( 'tilemantle')を試しましたが、tilemantleプロジェクトのindex.jsファイルが空であるため、これは何の助けにもならないと思います。
は、私はこれがすべてのエラーをスローしないプロジェクトnode-cmd
const cmd = require('node-cmd');
cmd.run('./node_modules/tilemantle/bin/tilemantle', 'http://localhost:5000/layer/{z}/{x}/{y}/tile.png', '-z 0-11', '--delay=100ms', '--point=37.819895,-122.478674', '--buffer=100mi'
を試してみましたが、それはまた、単に動作しません。
私も子供が
const child_process = require('child_process');
child_process.exec('./node_modules/tilemantle/bin/tilemantle', 'http://localhost:5000/layer/{z}/{x}/{y}/tile.png, -z 0-11 --delay=100ms --point=37.819895,-122.478674 --buffer=100mi'
これはまた、すべてのエラーをスローしませんが、それはまた、動作しませんを処理しようとしました。
私のプログラムの中からtilemantleを実行できるように、これを稼働させる方法はありますか?それをグローバルにインストールする必要はありませんか?
更新
私はjkwok
child_process.spawn('tilemantle', ['http://myhost.com/{z}/{x}/{y}.png',
'--point=44.523333,-109.057222', '--buffer=12mi', '-z', '10-14'],
{ stdio: 'inherit' });
により示唆されるように、私は次のことを実行した場合、私は交換した場合、私はspawn tilemantle ENOENT
を取得しています
node './node_modules/tilemantle/bin/tilemantle', 'http://localhost:5000/layer/{z}/{x}/{y}/tile.png', '--delay=100ms', '--point=37.819895,-122.478674', '--buffer=100mi', '-z 0-11'
でtilemantleは私の端末から実行するように得ることができますタイルマントル./node_modules/tilemantle/bin/tilemantle.js
と私は得るspawn UNKNOWN
は、私が実際にノードを産卵する必要がありますように聞こえるjfriend00's answerに基づいて、私は私が私の端末から、それを実行することができますので、奇妙なようにエラーspawn node ENOENT
を与え、次の
child_process.spawn('node', ['./node_modules/tilemantle/bin/tilemantle.js', 'http://myhost.com/{z}/{x}/{y}.png', '--point=44.523333,-109.057222', '--buffer=12mi', '-z', '10-14'], { stdio: 'inherit' });
を試してみましたが、私は私の道を確認しました変数はC:\Program Files\nodejs
です。
ちょうど私がノードへのフルパスで以下を実行しようとしました。
child_process.spawn('c:/program files/nodejs/node.exe', ['./node_modules/tilemantle/bin/tilemantle.js', 'http://myhost.com/{z}/{x}/{y}.png', '--point=44.523333,-109.057222', '--buffer=12mi', '-z', '10-14'], { stdio: 'inherit' });
ENOENTエラーなしで実行されますが、再び黙って失敗していて、自分のタイルサーバーをウォームアップしていません。
私は6.11.0
私がリンクしている投稿には、Windows [ここ](https://stackoverflow.com/questions/17516772/using-nodejss-spawn-causes-unknown-option-and-error-spawn-enoent)での実行に関するコメントがあります。 -err/17537559#17537559) – jkwok