目前看来,对于sails.js应用中的任何代码更改,您必须手动停止sails服务器并再次运行sails lift
,然后才能看到更改。
我想知道在开发模式下运行时是否有任何方法可以在检测到代码更改时自动重启sails服务器?
答案 0 :(得分:70)
您必须使用forever,nodemon或其他类型的观察者......
通过运行
来永久安装 sudo npm install -g forever
运行它:
forever -w start app.js
为避免无限次重启,因为Sails写入.tmp
文件夹,您可以在项目目录中创建一个.foreverignore
文件并将此内容放入:
**/.tmp/**
**/views/**
**/assets/**
请参阅GitHub上的问题: Forever restarting because of /.tmp
答案 1 :(得分:46)
正常提升您的应用程序,当您添加/更改/删除模型或控制器文件时,将重新加载所有控制器和模型,而无需降低/重新移动应用程序。
答案 2 :(得分:42)
例如,使用nodemon
来观看api和配置目录
.nodemonignore
内容
views/*
.tmp/*
.git/*
创建.nodemonignore
后运行命令$> nodemon -w api -w config
主管忽略3个目录的示例
$> supervisor -i .tmp,.git,views app.js
答案 3 :(得分:8)
如果您正在使用Sails 0.11,则可以安装此挂钩以在更改模型或控制器时自动重新加载(视图不需要重新加载):
npm install sails-hook-autoreload
答案 4 :(得分:7)
我遇到了同样的问题,我使用grunt-watch和grunt-forever与sails @ beta任务解决了这个问题。结果是4个grunt命令:
更新:任务在当前风帆版本中可用(它不再是beta:>)
这是代码 - 我正在使用sails @ beta,其中包含 tasks 目录,我不知道这是否包含在以前的版本中:
首先,您必须永久安装在您的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
并让服务器等待重新启动更改:>
希望这有帮助!
答案 5 :(得分:7)
全局或本地安装 $('.modal-backdrop').remove();
。
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"
},
答案 6 :(得分:4)
更好的使用
npm install -g nodemon
我正在使用它,它将有助于提高我的开发速度。无需为此编辑任何文件!。
安装后
nodemon app.js
答案 7 :(得分:1)
对于现在提出这个问题的任何人来说,似乎不再需要这样做了 - 使用sails lift
启动的应用程序将运行grunt监视任务,并且代码更改将在不重新启动的情况下可见。
我一开始并没有意识到这种情况正在发生,因为没有任何东西可以指示控制台中发生了什么,但它似乎没有重启(我正在使用Sails 0.11)