グラントは働いていた。しかし、私のサイトのファイルを1つのディレクトリに移動した後、ルートに座るために、gruntは機能しなくなりました。
致命的なエラー:ポート35729はすでに別のプロセスで使用されています。
この場合、パスは重要ですか?ポート35729を見ると、Gruntがそのポートで実行されている唯一のプロセスであることがわかりました。私はそのプロセスを強制終了し、35729で他のプロセスが実行されていないことを確認してから、再びうなり声を上げましたが、それでも以前と同じ致命的なエラーが発生しました。
Gruntが機能していたため、設定ファイルは変更されませんでしたが、「npm init」アプローチを使用して新しいpackage.jsonを作成し、「npm install」を再度実行して、「node_modules」がダウンロードされたことを確認しました。他に何を試すことができますか?
Mac OS10.10.5でNode v0.10.33を実行しています
問題が解決しました。 grunt-cliはグローバルにインストールされますが、gruntはプロジェクトとともにローカルにインストールされます。したがって、サイトのファイルを1つのディレクトリに移動し、その新しい場所からgruntを実行すると、ファイルを移動する前に起動されたgruntの以前のインスタンスによって、ポートがすでに占有されていることがわかったgruntの2番目のインスタンスを効果的に起動していました。
私がそのプロセスを殺した後、うなり声は問題なく走りました。 kill -9を使用して強制終了できなかったため、Macのアクティビティモニターを使用して「ForceQuit」を発行しました。
ターミナルでCtrl+C
を使用してプロセスを停止しないでください。
Ctrl+Z
は実行を継続します。
Sudo lsof -i :35729
でプロセスIDを見つけます
次に、Sudo kill -9 PID
でプロセスを強制終了します
うなり声の時計を再実行します
私の場合、Gruntwatchはすでに別のプロジェクトで実行されていました。そこで、Gruntの監視タスクを適切に更新して、ライブリロードを別のポートで監視できるようにしました。
watch: {
main: {
options: {
livereload: 35730,
livereloadOnError: false,
spawn: false
},
files: [createFolderGlobs(['*.js', '*.less', '*.html']), '!_SpecRunner.html', '!.grunt'],
tasks: [] //all the tasks are run dynamically during the watch event handler
}
}
指定されたlivereload:PORT
問題は grunt-contrib-watch
のライブリロード: https://github.com/gruntjs/grunt-contrib-watch/blob/v1.0.0/tasks/lib/livereload.js#L19
livereload
オプションをtrueに設定して2つのうなり声を監視することはできません。 livereload
オプションの1つをfalseに設定するか、livereload
オプションをtrue
からlive-reload: 1337
。
詳細については、ドキュメントを参照してください: https://github.com/gruntjs/grunt-contrib-watch#optionslivereload
それ以外の場合は、必要な数のgruntプロセスを実行できます。