From 13dcdd823735124b1cedd7a2245c0629ee3895e5 Mon Sep 17 00:00:00 2001 From: "Florine W. Dekker" Date: Sat, 26 Mar 2022 19:33:42 +0100 Subject: [PATCH] Additionally export storage.js from Minesweeper --- Gruntfile.js | 53 +++++--- package-lock.json | Bin 214907 -> 230343 bytes package.json | 12 +- src/main/js/Storage.ts | 186 +++++++++++++++++++++++++++ src/main/js/{main.js => template.js} | 2 +- src/test/index.html | 8 ++ tsconfig.json | 11 ++ 7 files changed, 248 insertions(+), 24 deletions(-) create mode 100644 src/main/js/Storage.ts rename src/main/js/{main.js => template.js} (99%) create mode 100644 tsconfig.json diff --git a/Gruntfile.js b/Gruntfile.js index 9acc492..3aac6fe 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -14,13 +14,33 @@ module.exports = grunt => { }, }, focus: { - dev: { - include: ["css", "js"], + deploy: { + include: ["css", "storage", "template"], }, }, webpack: { - options: { - entry: "./src/main/js/main.js", + storage: { + entry: "./src/main/js/Storage.ts", + module: { + rules: [ + { + test: /\.ts$/, + use: "ts-loader", + exclude: /node_modules/, + }, + ], + }, + resolve: { + extensions: [".ts"], + }, + output: { + filename: "storage.js", + path: path.resolve(__dirname, "dist/"), + }, + mode: "production", + }, + template: { + entry: "./src/main/js/template.js", module: { rules: [ { @@ -30,20 +50,14 @@ module.exports = grunt => { ], }, resolve: { - extensions: [".js"], + extensions: [".ts"], }, output: { library: "fwdekker-template", libraryTarget: "umd", filename: "template.js", path: path.resolve(__dirname, "dist"), - } - }, - dev: { - mode: "development", - devtool: "inline-source-map", - }, - deploy: { + }, mode: "production", }, }, @@ -52,9 +66,13 @@ module.exports = grunt => { files: ["src/main/**/*.css"], tasks: ["cssmin"], }, - js: { + storage: { + files: ["src/main/**/*.ts"], + tasks: ["webpack:storage"], + }, + template: { files: ["src/main/**/*.js"], - tasks: ["webpack:dev"], + tasks: ["webpack:template"], }, }, }); @@ -65,9 +83,8 @@ module.exports = grunt => { grunt.loadNpmTasks("grunt-focus"); grunt.loadNpmTasks("grunt-webpack"); - grunt.registerTask("dev", ["webpack:dev", "cssmin"]); - grunt.registerTask("dev:server", ["dev", "focus:dev"]); - grunt.registerTask("deploy", ["webpack:deploy", "cssmin"]); + grunt.registerTask("deploy", ["webpack:storage", "webpack:template", "cssmin"]); + grunt.registerTask("deploy:server", ["deploy", "focus:deploy"]); - grunt.registerTask("default", ["dev"]); + grunt.registerTask("default", ["deploy"]); }; diff --git a/package-lock.json b/package-lock.json index 707099f6e0cdef918286f9f6589907a924cb5673..b68c3f2b6a8cb8e0a20c5ac1460945ada1a826b7 100644 GIT binary patch delta 8277 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 { // Export to namespace -fwdekker = {stringToHtml, $, $a, doAfterLoad, nav, header, footer}; +window.fwdekker = {stringToHtml, $, $a, doAfterLoad, nav, header, footer}; diff --git a/src/test/index.html b/src/test/index.html index 421334f..d904238 100644 --- a/src/test/index.html +++ b/src/test/index.html @@ -47,5 +47,13 @@ + + + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e05d682 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es2019", + "strict": true, + "rootDir": "./src/main/js/", + "outDir": "./dist/js/" + }, + "include": [ + "src/main/js/**/*.ts" + ] +}