답변:
forever , nodemon 또는 다른 것과 같은 감시자를 사용해야합니다 ...
다음 을 실행하여 영원히 설치하십시오 .
sudo npm install -g forever
실행 :
forever -w start app.js
Sails가 .tmp
폴더에 쓰기 때문에 무한 재시작을 방지하기 위해 .foreverignore
프로젝트 디렉토리에 파일을 생성 하고이 콘텐츠를 내부에 넣을 수 있습니다.
**/.tmp/**
**/views/**
**/assets/**
GitHub : Forever restarting because /.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 개의 grunt 명령입니다.
업데이트 : 작업은 현재 sails 버전에서 사용할 수 있습니다 (더 이상 베타 버전이 아닙니다. :>).
코드는 다음과 같습니다. 작업 디렉토리 가 포함 된 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
변경 사항이 다시 시작될 때까지 서버를 기다리십시오.
이것이 도움이 되었기를 바랍니다!
지금이 질문에 답하는 사람에게는 이것이 더 이상 필요하지 않은 것 같습니다.로 시작된 응용 프로그램 sails lift
에는 지저분한 감시 작업이 실행되고 코드 변경 사항은 다시 시작하지 않고도 볼 수 있습니다.
콘솔에서 무슨 일이 일어나고 있는지 나타내는 것이 없기 때문에 처음에는 이것이 발생한다는 것을 몰랐지만 다시 시작하지 않고도 작동하는 것 같습니다 (Sails 0.11을 사용하고 있습니다)
.foreverignore
변경 사항을 즉시 확인하기 위해 다시 시작할 필요가 없으므로에 뷰를 추가 할 수도 있습니다 . 예**/views/**