После this отличная статья о том, как использовать npm в качестве инструмента сборки, я хотел бы реализовать его при создании веб-приложения nodejs express. приложение Мой узел создается на порт 8080, это упрощенная версия моего server.js
файла:Использование connect-livereload в приложении Express node
var env = process.env.NODE_ENV
var path = require('path');
var express = require('express');
var logger = require('morgan');
var routes = require('./routes');
var app = express();
app.set('port', process.env.PORT || 8080);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.engine('jade', require('jade').__express)
var Oneday = 86400000;
app.use(express.static(__dirname + '/www', {
maxAge: env == 'development' ? 0 : Oneday
}));
app.use(logger('dev'));
app.use(express.static(path.join(__dirname, '/public'), {
maxAge: env == 'development' ? 0 : Oneday
}))
if (env == 'development') {
// var liveReloadPort = 9091;
app.use(require('connect-livereload')({
port: 8080
// src: "js/"
// port: liveReloadPort
}));
}
routes.blog(app);
routes.frontend(app, passport);
app.use(function(err, req, res, next) {
console.log(err.stack);
res.status(500).send({
message: err.message
})
});
app.listen(app.get('port'));
console.log('Server starting on port: ' + app.get('port'));
Файл, который я наблюдал до необходимости перезагрузки в www/js
. Я использую npm
как инструмент построения и перед запуском server.js
с npm Я запускаю отдельный процесс, который делает watchify source/js/app.js -v -o wwww/js/bundle.js
Я проверил, что watchify работает правильно, обновляясь при сохранении моих файлов. Но после того, как файл был изменен, нет никакой нагрузки на печень. Я получаю ошибку в консоли: Uncaught SyntaxError: Unexpected token <
и я могу видеть, что соединить-LiveReload вставить этот скрипт в HTML:
<script>
//<![CDATA[
document.write('<script src="//' + (location.hostname || 'localhost') + ':8080/livereload.js?snipver=1"><\/script>')
//]]>
</script>
<script src="//localhost:8080/livereload.js?snipver=1"> </script>
Я пытался также использовать live-reload, как упоминалось в оригинальной статье, но без успеха и я не уверен, что это правильный плагин для использования, поскольку live-reload
запускает сервер, когда я уже запускаю его с помощью express. Любые идеи?
Спасибо. Вы ведете меня к решению. То, что было разрешено, начинается с 'live-reload --port 9091 www/js /', и тот же самый порт, который я указываю здесь, является тем, который я использую в connect-livereload 'app.use (require ('connect-livereload') ({ порт: 9091 })); ' – Bondifrench
@Bondifrench рад, что это помогло. – andineck