Gerne!
In der package.json, Abschnitt "scripts":
"deploy_local": "node build/deploy_local.js"Das Skript sieht folgendermaßen aus:
https://github.com/AlCalzone/ioBroker.t … y_local.js
bzw. die TypeScript-Originaldatei:
https://github.com/AlCalzone/ioBroker.t ... y_local.ts
Im Projektordner liegt noch eine deploy_password.json mit folgendem Inhalt:
{ "host": "<hostname>", "username": "<username>", "password": "<password>" }</password></username></hostname>Per
npm run deploy_localaus VSCode wird das, was in den 3 Zeilen ab
https://github.com/AlCalzone/ioBroker.t … cal.ts#L19
definiert ist, auf den Pi hochgeladen und upload/restart ausgeführt.
Edit: Variante 2 per gulp-Skript aus einem älteren Projekt:
Das führt aber durch die NPM-Installation zu mehr Arbeit auf dem Pi. Und Upload/Restart war da auch noch nicht drin.! ````
"use strict";
! var gulp = require('gulp'),
plumber = require('gulp-plumber'),
gulpSSH = require('gulp-ssh'),
execSync = require('child_process').execSync
;
! gulp.task('raspi-install', () => {
! let packFile;
try {
packFile = execSync("npm pack");
} catch (e) {
console.log(Error while doing "npm pack": ${e});
return;
}
! const conn = {
host: "<hostname">,
port: 22,
username: "<username>",
password: "<passwort>"
};
const ssh = new gulpSSH({
ignoreErrors: false,
sshConfig: conn
});
! return gulp
.src([./${packFile}])
.pipe(ssh.dest('/opt/iobroker/'))
.exec([
"cd /opt/iobroker",
npm install ${packFile} --production,
rm -f ${packFile},
])
;
})</passwort></username></hostname">