我目前正在为当前的构建过程添加“livereload”功能。以前,我需要“构建”输出并在每次进行更改时使用node server.js
重新启动我的服务器。一些SO解决方案提到使用“gulp-nodemon”来实现这一点。
使用node server.js
执行时,下面的服务器文件可以正常工作。但是,当我尝试使用nodeman和gulp启动它时,我得到以下输出:
[11:36:48] [nodemon] v1.7.0
[11:36:48] [nodemon] to restart at any time, enter `rs
[11:36:48] [nodemon] watching: /debug/***/*
[11:36:48] [nodemon] starting `node server.js`
{ [Error: spawn cmd ENOENT]
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn cmd',
path: 'cmd',
spawnargs: [ '/c', 'node server.js' ] }
[11:36:48] [nodemon] unable to run executable: "node"
使用node -v
我得到“v4.1.0”
我在Win8上以管理员身份运行我的cmd窗口。感谢任何/所有帮助。
gulpfile.js
gulp.task('server', function(done){
// listen for changes
livereload.listen();
// configure nodemon
nodemon({
// script that runs app
script: 'server.js',
watch: '/debug/**'
}).on('error', function(e){
console.log(e);
});
});
server.js
var express = require('express');
var app = express();
// CONST
var PORT = 3000;
var serverDirectory = __dirname;
// Static Assets
app.use('/source', express.static(serverDirectory + '/debug'));
app.use('/libraries', express.static(serverDirectory + '/bower_components'));
app.use('/assets', express.static(serverDirectory + '/debug/assets'));
// Redirect
app.get('/', function(request, response) {
return response.redirect('/app/');
});
// ROOT
app.get('/app/*', function(request, response) {
return response.sendFile(serverDirectory + '/debug/index.html');
});
// Start app/server
var server = app.listen(PORT, function() {
console.log('Listening on port ' + PORT + '...');
});
更新
我的系统路径中有C:\Program Files\nodejs\
,我已验证node.exe位于该位置。
更新
导航到我的“node_modules”目录,当我尝试运行此程序包附带的提供的gulp test
命令时,我得到完全相同的错误。似乎暗示这是一个环境问题。