diff --git a/Gruntfile.js b/Gruntfile.js index 4d15878..22ccbd9 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -7,18 +7,23 @@ module.exports = grunt => { default: [".nyc_output/", "dist/"] }, copy: { - images: { - files: [{expand: true, cwd: "src/main/", src: ["**/*.png", "**/*.ico"], dest: "dist/"}] + css: { + files: [{expand: true, cwd: "src/main/", src: "**/*.css", dest: "dist/"}] }, html: { files: [{expand: true, cwd: "src/main/", src: "**/*.html", dest: "dist/"}] }, - css: { - files: [{expand: true, cwd: "src/main/", src: "**/*.css", dest: "dist/"}] + images: { + files: [{expand: true, cwd: "src/main/", src: ["**/*.png", "**/*.ico"], dest: "dist/"}] }, pwa: { files: [{expand: true, cwd: "src/main/", src: ["manifest.json", "sw.js"], dest: "dist/"}] - } + }, + }, + focus: { + dev: { + include: ["css", "html", "link", "ts"], + }, }, replace: { dev: { @@ -42,6 +47,24 @@ module.exports = grunt => { overwrite: true } }, + watch: { + css: { + files: ["src/main/**/*.css"], + tasks: ["copy:css"], + }, + html: { + files: ["src/main/**/*.html"], + tasks: ["copy:html"], + }, + link: { + files: ["node_modules/@fwdekker/*/dist/**"], + tasks: ["webpack:dev", "replace:dev"], + }, + ts: { + files: ["src/main/**/*.ts"], + tasks: ["webpack:dev", "replace:dev"], + }, + }, webpack: { options: { entry: "./src/main/js/Main.ts", @@ -74,6 +97,8 @@ module.exports = grunt => { grunt.loadNpmTasks("grunt-contrib-clean"); grunt.loadNpmTasks("grunt-contrib-copy"); + grunt.loadNpmTasks("grunt-contrib-watch"); + grunt.loadNpmTasks("grunt-focus"); grunt.loadNpmTasks("grunt-text-replace"); grunt.loadNpmTasks("grunt-webpack"); @@ -90,6 +115,7 @@ module.exports = grunt => { // Post "replace:dev" ]); + grunt.registerTask("dev:server", ["dev", "focus:dev"]); grunt.registerTask("deploy", [ // Pre "clean", diff --git a/README.md b/README.md index 7a1b959..a5f52f2 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ $> npm ci ```shell script # Build the application in `dist/` for development $> npm run dev +# Same as above, but automatically rerun it whenever files are changed +$> npm run dev:server # Build the application in `dist/` for deployment $> npm run deploy # Remove build files diff --git a/package-lock.json b/package-lock.json index 88ecec2..c738b0f 100644 Binary files a/package-lock.json and b/package-lock.json differ diff --git a/package.json b/package.json index 3af85dc..186ac88 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fwdekker.com", - "version": "0.38.0", + "version": "0.38.1", "description": "The source code of [my personal website](https://fwdekker.com/).", "author": "Felix W. Dekker", "browser": "dist/bundle.js", @@ -12,6 +12,7 @@ "scripts": { "clean": "grunt clean", "dev": "grunt dev", + "dev:server": "grunt dev:server", "deploy": "grunt deploy", "test": "mocha -r ts-node/register -r jsdom-global/register src/**/*.spec.ts", "coverage": "nyc npm run test" @@ -32,6 +33,8 @@ "grunt-cli": "^1.3.2", "grunt-contrib-clean": "^2.0.0", "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-watch": "^1.1.0", + "grunt-focus": "^1.0.0", "grunt-text-replace": "^0.4.0", "grunt-webpack": "^4.0.2", "jsdom": "^16.4.0",