코드 변경시 Sails.js 앱을 자동으로 다시로드합니까?
현재 sails.js 앱의 코드 변경에 대해 수동으로 sails 서버를 중지 sails lift
하고 변경 사항을 확인하기 전에 다시 실행해야하는 것으로 보입니다 .
개발 모드에서 실행할 때 코드 변경을 감지하면 자동으로 sails 서버를 다시 시작하는 방법이 있는지 궁금합니다.
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를 사용할 수 있습니다.
정상적으로 앱을 들어 올리면 모델 또는 컨트롤러 파일을 추가 / 변경 / 제거 할 때 앱을 낮추거나 다시 들어 올릴 필요없이 모든 컨트롤러와 모델이 다시로드됩니다.
예를 들어 nodemon
api 및 config 디렉토리를 감시하려면
.nodemonignore
내용
views/*
.tmp/*
.git/*
.nodemonignore를 만든 후 명령 실행
$> nodemon -w api -w config
감독자가 3 개의 디렉토리를 무시하는 예
$> supervisor -i .tmp,.git,views app.js
Sails 0.11을 사용하는 경우이 후크를 설치하여 모델이나 컨트롤러를 변경할 때 자동으로 다시로드 할 수 있습니다 (보기는 다시로드 할 필요가 없음).
npm install sails-hook-autoreload
https://www.npmjs.com/package/sails-hook-autoreload
나는 같은 문제가 있었고 sails @ beta 작업과 함께 grunt-watch 및 grunt-forever를 사용하여 문제를 해결했습니다. 결과는 4 개의 grunt 명령입니다.
업데이트 : 작업은 현재 sails 버전에서 사용할 수 있습니다 (더 이상 베타 버전이 아닙니다. :>).
- start 서버를 시작 합니다.
- stop 서버를 중지합니다.
- restart 서버를 다시 시작합니다.
- startWatch 서버를 시작하고 변경 사항을 기다렸다가 다시 시작합니다 (grunt-watch 사용). 이것은 아마도 당신의 해결책이지만 다른 명령도 유용합니다.
코드는 다음과 같습니다. 작업 디렉토리 가 포함 된 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 Register your custom tasks (this file can be renamed to whatever you want)
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' ]); };
With this you should be able to use
grunt startWatch
and make your server wait for changes to be restarted :>
Hope this helped!
install nodemon
globally or locally.
npm install nodemon --save
npm install nodemon -g
install sails
locally in you project as follows
npm install sails --save
then change package.json
from
"scripts": {
"debug": "node debug app.js",
"start": "node app.js"
},
to
"scripts": {
"debug": "node debug app.js",
"start": "node app.js",
"dev": "export NODE_ENV=development && nodemon --ignore 'tmp/*' app.js && exit 0"
},
then
npm run dev
Better you use
npm install -g nodemon
i am using this, and it will helps to improve my developing speed. no need to edit any files for this one!.
after installation
nodemon app.js
For anyone coming to this question now, it seems that this is no longer necessary - an application launched with sails lift
will have a grunt watch task running, and code changes will be visible without a restart.
I didn't realise this was happening at first because there's nothing to indicate what's happening in the console, but it does seem to work without a restart (I'm using Sails 0.11)
참고URL : https://stackoverflow.com/questions/18687818/auto-reloading-a-sails-js-app-on-code-changes
'programing' 카테고리의 다른 글
Angular 2 TypeScript 배열에서 요소를 찾는 방법 (0) | 2020.08.17 |
---|---|
오버로딩 및 재정의 (0) | 2020.08.17 |
이메일 제목의 애니메이션 아이콘 (0) | 2020.08.16 |
파이썬 내에서 간단한“chmod + x”를 어떻게 수행합니까? (0) | 2020.08.16 |
Spinner의 드롭 다운에 다른 테마를 설정하려면 어떻게해야합니까? (0) | 2020.08.16 |