I do Ghost themes professionally and this is what I use.
Editor
Visual Studio Code as my main text editor.
Zip
I use gulp.js with gulp-zip to export the final zip file. My current Gulp zip task is something like.
gulp.task('zip', function () {
return gulp.src([
'./**',
'!node_modules/**',
'!bower_components/**',
'!.git/**',
'!.DS_Store'
], { dot: true })
.pipe(zip('NAME.zip'))
.pipe(gulp.dest('../'))
done();
});
So, with the gulp zip
command, I can export the final theme file.
If you are not using gulp and want a simple command line to zip the theme, you can use something like.
zip -r NAME.zip NAME -x '*node_modules*' '*bower_components*'
What comes after the -x
option is a way to exclude different directories or files. In this case, we are excluding the node_modules and bower_components directories from the final zip file.
Deployment
I use the Deploy Ghost Theme Github action. I wrote a step by step guide about it at Ghost Tips & Tricks #3 / Deploy Your Ghost Theme Using Github Actions