Skip to content

Commit

Permalink
Modernize build chain
Browse files Browse the repository at this point in the history
  • Loading branch information
otacke committed Oct 4, 2023
1 parent 2e33e62 commit b3de9c0
Show file tree
Hide file tree
Showing 25 changed files with 81 additions and 74 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
],
"author": "Oliver Tacke",
"license": "MIT",
"type": "module",
"devDependencies": {
"@babel/cli": "^7.23.0",
"@babel/core": "^7.23.0",
Expand Down
2 changes: 1 addition & 1 deletion src/entries/dist.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import GameMap from '../scripts/h5p-game-map';
import GameMap from '@scripts/h5p-game-map.js';

// Load library
H5P.GameMap = GameMap;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from '@services/util';
import Util from '@services/util.js';
import './confirmation-dialog.scss';

export default class ConfirmationDialog {
Expand Down
6 changes: 3 additions & 3 deletions src/scripts/components/exercise-screen/exercise-screen.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import FocusTrap from '@services/focus-trap';
import Util from '@services/util';
import TimerDisplay from './timer-display';
import FocusTrap from '@services/focus-trap.js';
import Util from '@services/util.js';
import TimerDisplay from './timer-display.js';
import './exercise-screen.scss';

/** Class representing an exercise screen */
Expand Down
18 changes: 9 additions & 9 deletions src/scripts/components/main.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import CallbackQueue from '@services/callback-queue';
import Util from '@services/util';
import MainAudio from './mixins/main-audio';
import MainInitialization from './mixins/main-initialization';
import MainHandlersStage from './mixins/main-handlers-stage';
import MainHandlersExercise from './mixins/main-handlers-exercise';
import MainHandlersExerciseScreen from './mixins/main-handlers-exercise-screen';
import MainQuestionTypeContract from './mixins/main-question-type-contract';
import MainUserConfirmation from './mixins/main-user-confirmation';
import CallbackQueue from '@services/callback-queue.js';
import Util from '@services/util.js';
import MainAudio from './mixins/main-audio.js';
import MainInitialization from './mixins/main-initialization.js';
import MainHandlersStage from './mixins/main-handlers-stage.js';
import MainHandlersExercise from './mixins/main-handlers-exercise.js';
import MainHandlersExerciseScreen from './mixins/main-handlers-exercise-screen.js';
import MainQuestionTypeContract from './mixins/main-question-type-contract.js';
import MainUserConfirmation from './mixins/main-user-confirmation.js';
import './main.scss';

/**
Expand Down
4 changes: 2 additions & 2 deletions src/scripts/components/map/map.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Util from '@services/util';
import Path from './path';
import Util from '@services/util.js';
import Path from './path.js';
import './map.scss';

export default class Map {
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/components/map/path.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from '@services/util';
import Util from '@services/util.js';
import './path.scss';

export default class Path {
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/components/map/stage/label.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from '@services/util';
import Util from '@services/util.js';
import './label.scss';

export default class Label {
Expand Down
4 changes: 2 additions & 2 deletions src/scripts/components/map/stage/stage.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Color from 'color';
import Util from '@services/util';
import Label from './label';
import Util from '@services/util.js';
import Label from './label.js';
import './stage.scss';

export default class Stage {
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/components/media-screen/end-screen.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import MediaScreen from './media-screen';
import MediaScreen from './media-screen.js';
import './end-screen.scss';

/** Class representing the end screen */
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/components/media-screen/media-screen.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from '@services/util';
import Util from '@services/util.js';
import './media-screen.scss';

/** Class representing a media screen */
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/components/media-screen/start-screen.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import MediaScreen from './media-screen';
import MediaScreen from './media-screen.js';
import './start-screen.scss';

/** Class representing the start screen */
Expand Down
18 changes: 9 additions & 9 deletions src/scripts/components/mixins/main-initialization.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import Paths from '@models/paths';
import Stages from '@models/stages';
import StartScreen from '@components/media-screen/start-screen';
import EndScreen from '@components/media-screen/end-screen';
import Map from '@components/map/map';
import Toolbar from '@components/toolbar/toolbar';
import Exercises from '@models/exercises';
import ExerciseScreen from '@components/exercise-screen/exercise-screen';
import ConfirmationDialog from '@components/confirmation-dialog/confirmation-dialog';
import Paths from '@models/paths.js';
import Stages from '@models/stages.js';
import StartScreen from '@components/media-screen/start-screen.js';
import EndScreen from '@components/media-screen/end-screen.js';
import Map from '@components/map/map.js';
import Toolbar from '@components/toolbar/toolbar.js';
import Exercises from '@models/exercises.js';
import ExerciseScreen from '@components/exercise-screen/exercise-screen.js';
import ConfirmationDialog from '@components/confirmation-dialog/confirmation-dialog.js';

/**
* Mixin containing main init stuff.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from '@services/util';
import Util from '@services/util.js';
import './status-container.scss';

/** Class representing a status container */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Util from '@services/util';
import StatusContainer from './status-container';
import Util from '@services/util.js';
import StatusContainer from './status-container.js';
import './status-containers.scss';

export default class StatusContainers {
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/components/toolbar/toolbar-button.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Util from '@services/util.js';
import './toolbar-button.scss';
import Util from '@services/util';

export default class ToolbarButton {
/**
Expand Down
6 changes: 3 additions & 3 deletions src/scripts/components/toolbar/toolbar.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import StatusContainers from './status-containers/status-containers';
import ToolbarButton from './toolbar-button';
import Util from '@services/util';
import StatusContainers from './status-containers/status-containers.js';
import ToolbarButton from './toolbar-button.js';
import Util from '@services/util.js';
import './toolbar.scss';

/** Class representing the button bar */
Expand Down
18 changes: 9 additions & 9 deletions src/scripts/h5p-game-map.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import H5PUtil from '@services/h5p-util';
import Util from '@services/util';
import Dictionary from '@services/dictionary';
import Globals from '@services/globals';
import Jukebox from '@services/jukebox';
import Main from '@components/main';
import H5PUtil from '@services/h5p-util.js';
import Util from '@services/util.js';
import Dictionary from '@services/dictionary.js';
import Globals from '@services/globals.js';
import Jukebox from '@services/jukebox.js';
import Main from '@components/main.js';
import MessageBox from '@components/messageBox/message-box.js';
import QuestionTypeContract from '@mixins/question-type-contract.js';
import XAPI from '@mixins/xapi.js';
import '@styles/h5p-game-map.scss';
import MessageBox from '@components/messageBox/message-box';
import QuestionTypeContract from '@mixins/question-type-contract';
import XAPI from '@mixins/xapi';

export default class GameMap extends H5P.Question {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/mixins/xapi.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from '@services/util';
import Util from '@services/util.js';

/**
* Mixin containing methods for xapi stuff.
Expand Down
6 changes: 3 additions & 3 deletions src/scripts/models/exercise.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Timer from '@services/timer';
import H5PUtil from '@services/h5p-util';
import Util from '@services/util';
import Timer from '@services/timer.js';
import H5PUtil from '@services/h5p-util.js';
import Util from '@services/util.js';

export default class Exercise {

Expand Down
4 changes: 2 additions & 2 deletions src/scripts/models/exercises.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Util from '@services/util';
import Exercise from '@models/exercise';
import Util from '@services/util.js';
import Exercise from '@models/exercise.js';

export default class Exercises {

Expand Down
4 changes: 2 additions & 2 deletions src/scripts/models/paths.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Util from '@services/util';
import Path from '@components/map/path';
import Util from '@services/util.js';
import Path from '@components/map/path.js';

export default class Paths {

Expand Down
4 changes: 2 additions & 2 deletions src/scripts/models/stages.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Util from '@services/util';
import Stage from '@components/map/stage/stage';
import Util from '@services/util.js';
import Stage from '@components/map/stage/stage.js';

export default class Stages {

Expand Down
2 changes: 1 addition & 1 deletion src/scripts/services/timer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Util from './util';
import Util from '@services/util.js';

export default class Timer {
/**
Expand Down
36 changes: 21 additions & 15 deletions webpack.config.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');
import { dirname, resolve as _resolve, join } from 'path';
import { fileURLToPath } from 'url';
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
import TerserPlugin from 'terser-webpack-plugin'; // Provided by webpack

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const mode = process.argv.includes('--mode=production') ?
'production' : 'development';
'production' :
'development';
const libraryName = process.env.npm_package_name;

module.exports = {
export default {
mode: mode,
resolve: {
alias: {
'@assets': path.resolve(__dirname, 'src/assets'),
'@components': path.resolve(__dirname, 'src/scripts/components'),
'@mixins': path.resolve(__dirname, 'src/scripts/mixins'),
'@models': path.resolve(__dirname, 'src/scripts/models'),
'@root': path.resolve(__dirname, './'),
'@services': path.resolve(__dirname, 'src/scripts/services'),
'@styles': path.resolve(__dirname, 'src/styles')
'@assets': _resolve(__dirname, 'src/assets'),
'@components': _resolve(__dirname, 'src/scripts/components'),
'@mixins': _resolve(__dirname, 'src/scripts/mixins'),
'@models': _resolve(__dirname, 'src/scripts/models'),
'@root': _resolve(__dirname, './'),
'@scripts': _resolve(__dirname, 'src/scripts'),
'@services': _resolve(__dirname, 'src/scripts/services'),
'@styles': _resolve(__dirname, 'src/styles')
}
},
optimization: {
Expand All @@ -41,7 +47,7 @@ module.exports = {
},
output: {
filename: `${libraryName}.js`,
path: path.resolve(__dirname, 'dist'),
path: _resolve(__dirname, 'dist'),
clean: true
},
target: ['browserslist'],
Expand Down Expand Up @@ -71,12 +77,12 @@ module.exports = {
},
{
test: /\.svg|\.jpg|\.png$/,
include: path.join(__dirname, 'src/assets/images'),
include: join(__dirname, 'src/images'),
type: 'asset/resource'
},
{
test: /\.woff$/,
include: path.join(__dirname, 'src/assetsfonts'),
include: join(__dirname, 'src/fonts'),
type: 'asset/resource'
}
]
Expand Down

0 comments on commit b3de9c0

Please sign in to comment.