Gulp -незагрузка по https?
Я использую расширение chelenoad chrome, которое вставляет http://[...]/livereload.js в документ. К сожалению, я работаю над проектом, который требует https, и я ожидал его репликации локально, но мне не нужно это делать, поскольку я могу изменить протокол для разных сред, но мне интересно, можно ли установить gulp -livereload для загрузки через https вместо?
Вот несколько вещей, которые я пробовал, например, добавление script вручную без успеха, поскольку я получаю ошибку подключения (GET https://127.0.0.1:35729/livereload.js?snipver=1 net:: ERR_CONNECTION_CLOSED ):
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://127.0.0.1:35729/livereload.js?snipver=1';
document.getElementsByTagName('body')[0].appendChild(script)
Любые советы приветствуются, спасибо!
Ответы
Ответ 1
На моей голове два решения:
1. Принимайте клиента самостоятельно
https://github.com/livereload/livereload-js
Установите его как зависимость:
bower install livereload-js --save-dev
или
npm install livereload-js --save
Затем просто включите его, как если бы вы включили обычный script. Однако знать об этих оговорках.
/path/to/dist/livereload.js?host=localhost
2. Прокси клиент script
Это довольно активно, но это определенно сработает. Создайте сервер HTTPS в своем gulpfile (возможно, в задаче просмотра).
https://github.com/nodejitsu/node-http-proxy
https://github.com/nodejitsu/node-http-proxy#using-https
httpProxy.createServer({
ssl: {
key: fs.readFileSync('valid-ssl-key.pem', 'utf8'),
cert: fs.readFileSync('valid-ssl-cert.pem', 'utf8')
},
target: 'https://localhost:35729',
secure: true // Depends on your needs, could be false.
}).listen(443);
Затем вы можете ссылаться на прокси-сервер script.
https://127.0.0.1:443/livereload.js?snipver=1
Ответ 2
Хотя в документах API не добавлены параметры ключа/сертификата
gulp.task('run-reload-server', function() {
livereload.listen({
host: "my.domain.com",
port: 35729,
key: fs.readFileSync(path.join(__dirname, 'livereload.key'), 'utf-8'),
cert: fs.readFileSync(path.join(__dirname, 'livereload.crt'), 'utf-8'),
});
});