回答:
あなたはforever、nodemonなどのウォッチャーを使用する必要があります...
次のコマンドを実行して、永久にインストールします。
sudo npm install -g forever
それを実行します:
forever -w start app.js
Sailsが.tmp
フォルダーに書き込むことによる無限の再起動を回避するため.foreverignore
に、プロジェクトディレクトリにファイルを作成し、このコンテンツを中に置くことができます。
**/.tmp/**
**/views/**
**/assets/**
GitHubの問題を参照してください: / . tmpのために再起動しません。
sails-hook-autoreloadを使用できます
通常どおりアプリを持ち上げるだけで、モデルまたはコントローラーファイルを追加/変更/削除すると、すべてのコントローラーとモデルがリロードされ、アプリを下げたり、再度持ち上げたりする必要はありません。
Details: Error: ER_ROW_IS_REFERENCED: Cannot delete or update a parent row: a foreign key constraint fail
によってスロー5/lib/node_modules/sails/lib/hooks/orm/index.js:221
私は(帆11.3を使用して)保存するとき
たとえば、nodemon
apiおよびconfigディレクトリを監視するには
.nodemonignore
内容物
views/*
.tmp/*
.git/*
.nodemonignoreの作成後にコマンドを実行します
$> nodemon -w api -w config
スーパーバイザが3つのディレクトリを無視する例
$> supervisor -i .tmp,.git,views app.js
nodemon
ソリューションよりもforever
ソリューションが好きnodemon
です。開発ワークフローを容易にします。
.nodemonignore
例を使用して実行しましたnodemon
。これまでのところ機能します。
sails lift
について混乱している人のために、nodemonは使用することを知っていますapp.js
。
Sails 0.11を使用している場合は、このフックをインストールして、モデルまたはコントローラーを変更したときに自動的に再読み込みできます(ビューは再読み込みを必要としません)。
npm install sails-hook-autoreload
nodemon
グローバルまたはローカルにインストールします。
npm install nodemon --save
npm install nodemon -g
sails
次のようにプロジェクトにローカルにインストールします
npm install sails --save
それから変える package.json
から
"scripts": {
"debug": "node debug app.js",
"start": "node app.js"
},
に
"scripts": {
"debug": "node debug app.js",
"start": "node app.js",
"dev": "export NODE_ENV=development && nodemon --ignore 'tmp/*' app.js && exit 0"
},
その後
npm run dev
同じ問題があり、sails @ betaタスクでgrunt-watchとgrunt-foreverを使用して解決しました。結果は4つの不平なコマンドです:
更新:タスクは現在のセールバージョンで利用できます(ベータ版ではなくなりました:>)
これがコードです-私は、sails @ betaを使用しています。これには、タスクディレクトリが含まれています。これが以前のバージョンに含まれているかどうかはわかりません。
まず、sailsディレクトリに永久にインストールする必要があります。
npm install grunt-forever --save-dev
tasks / config / forever.js永久タスクを構成します。
module.exports = function(grunt) {
grunt.config.set('forever', {
server: {
options: {
index: 'app.js',
logDir: 'logs'
}
}
});
grunt.loadNpmTasks('grunt-forever');
};
tasks / config / watch.js(編集)新しいルールを追加するために監視タスクを編集します
// api and assets default rules
,
server: {
// Server files to watch:
files: [
'api/**/*',
'config/**/*'
],
// Restart server
tasks: ['forever:server:restart']
}
tasks / register / watchForever.jsカスタムタスクを登録します(このファイルは任意の名前に変更できます)
module.exports = function(grunt) {
// Starts server
grunt.registerTask('start', [
'compileAssets',
'linkAssetsBuild',
'clean:build',
'copy:build',
'forever:server:start'
]);
// Restarts the server (if necessary) and waits for changes
grunt.registerTask('startWatch', [
'restart',
'watch:server'
]);
// Restarts server
grunt.registerTask('restart', [
'forever:server:restart'
]);
// Stops server
grunt.registerTask('stop', [
'forever:server:stop'
]);
};
これであなたは使うことができるはずです
grunt startWatch
変更が再開されるまでサーバーを待機させます:>
これが役に立てば幸い!
よく使う
npm install -g nodemon
私はこれを使用しています。それは私の開発速度を向上させるのに役立ちます。これのためにファイルを編集する必要はありません!。
インストール後
nodemon app.js
今この質問に来ている人にとっては、これはもう必要ないようです-で起動されたアプリケーション sails lift
は、大まかな監視タスクが実行され、コードの変更は再起動なしで表示されます。
コンソールで何が起こっているかを示すものがないため、最初はこれが起こっていることに気づきませんでしたが、再起動しなくても機能しているようです(私はSails 0.11を使用しています)。
.foreverignore
変更をすぐに確認するために再起動する必要がないため、ビューを追加することもできます。例**/views/**