From 0f32db992befd778729e1eba9d7f1bb4346e07ce Mon Sep 17 00:00:00 2001 From: til-schneider Date: Tue, 2 Feb 2016 19:47:26 +0100 Subject: [PATCH] Added grunt task for creating a release zip --- README.md | 38 +++++++++++++++++++++++++++++--------- src/Gruntfile.js | 31 ++++++++++++++++++++++++++++++- src/package.json | 1 + 3 files changed, 60 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1881770..f6a080e 100644 --- a/README.md +++ b/README.md @@ -16,28 +16,48 @@ Check out the **[demo website](http://slim-wiki.murfman.de/)** for more details Want to develop slim wiki? -------------------------- +### Set up build environment + +1. Install [node.js](https://nodejs.org/en/) (this includes `npm`) + +2. Install grunt globally: + + sudo npm install -g grunt-cli + +3. Install grunt dependencies in project: + + cd src + npm install + ### Build instructions -Install grunt globally: - - sudo npm install -g grunt-cli - -Install grunt dependencies in project: - - cd src - npm install - Build client: cd src grunt +Now link the project directory to a locally installed Apache Webserver with PHP and `mod_rewrite` enabled. + +Go to the browser and open one of: + +- `http:localhost/path/to/src/` - for the development version using the source JavaScript files. +- `http:localhost/path/to/dist/` - for the production version using compressed CSS and JavaScript. + + + +### Other build options + Build automatically on source changes (watch mode): cd src grunt watch +Build a release zip: + + cd src + grunt release + ### Installation instructions diff --git a/src/Gruntfile.js b/src/Gruntfile.js index 4850995..92fed84 100644 --- a/src/Gruntfile.js +++ b/src/Gruntfile.js @@ -3,7 +3,8 @@ module.exports = function (grunt) { require('load-grunt-tasks')(grunt); - var dist = __dirname + '/../dist'; + var projectDir = __dirname + '/..'; + var dist = projectDir + '/dist'; grunt.registerTask('build', [ 'copy', @@ -20,6 +21,12 @@ module.exports = function (grunt) { 'build' ]); + grunt.registerTask('release', [ + 'clean', + 'build', + 'compress:releaseZip' + ]); + grunt.initConfig({ clean: { @@ -64,6 +71,28 @@ module.exports = function (grunt) { html: dist + '/server/layout/page.php' }, + compress: { + releaseZip: { + options: { + archive: dist + '/slim-wiki.zip' + }, + files: [ + { + expand: true, + cwd: projectDir, + src: [ 'LICENSE', 'README.md' ], + dest: 'slim-wiki/' + }, + { + expand: true, + cwd: dist, + src: [ '.htaccess', 'config-example.php', 'index.php', 'articles/**', 'client/**', 'data/dummy.txt', 'server/**' ], + dest: 'slim-wiki/' + } + ] + } + }, + watch: { less: { files: 'client/less/*.less', diff --git a/src/package.json b/src/package.json index 5602c99..2c3f9f2 100644 --- a/src/package.json +++ b/src/package.json @@ -6,6 +6,7 @@ "grunt": "0.4.x", "grunt-contrib-clean": "0.6.x", "grunt-contrib-concat": "0.5.x", + "grunt-contrib-compress": "0.13.x", "grunt-contrib-copy": "0.8.x", "grunt-contrib-cssmin": "0.12.x", "grunt-contrib-less": "1.0.x",