diff --git a/package.json b/package.json index 9f8247e..eac2346 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,6 @@ "release": "yarn build && yarn lint && yarn test && cd dist && yarn publish" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.1", - "@rollup/plugin-node-resolve": "^13.0.6", "@sveltejs/eslint-config": "sveltejs/eslint-config", "@tsconfig/svelte": "^2.0.1", "@types/compression": "^1.7.0", @@ -66,12 +64,6 @@ "node-fetch": "^3.0.0", "nodemon": "^2.0.6", "require-from-string": "^2.0.2", - "rollup": "^2.42.3", - "rollup-plugin-css-only": "^3.1.0", - "rollup-plugin-imagemin": "^0.4.1", - "rollup-plugin-livereload": "^2.0.0", - "rollup-plugin-svelte": "^7.1.0", - "rollup-plugin-terser": "^7.0.2", "sass": "^1.32.12", "supertest": "^6.0.0", "svelte-check": "^2.2.8", @@ -79,6 +71,8 @@ "typescript": "^4.0.2" }, "dependencies": { + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-node-resolve": "^13.0.6", "argon2": "^0.28.2", "clear-module": "^4.1.1", "compression": "^1.7.4", @@ -98,6 +92,12 @@ "nunjucks": "^3.2.1", "on-finished": "^2.3.0", "redis": "^3.0.2", + "rollup": "^2.42.3", + "rollup-plugin-css-only": "^3.1.0", + "rollup-plugin-imagemin": "^0.4.1", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-svelte": "^7.1.0", + "rollup-plugin-terser": "^7.0.2", "svelte": "^3.35.0", "svelte-preprocess": "4.6.9", "ts-node": "^10.4.0", diff --git a/scripts/dist.js b/scripts/dist.js index a0ead2a..8d26a3c 100644 --- a/scripts/dist.js +++ b/scripts/dist.js @@ -7,6 +7,7 @@ const {copyRecursively} = require('./_functions.js'); 'yarn.lock', 'README.md', 'config/', + 'rollup.config.js', ].forEach(file => { copyRecursively(file, 'dist'); }); diff --git a/scripts/prepare-sources.js b/scripts/prepare-sources.js index 854d9c2..4f7982d 100644 --- a/scripts/prepare-sources.js +++ b/scripts/prepare-sources.js @@ -1,6 +1,5 @@ const fs = require('fs'); const path = require('path'); -const {copyRecursively} = require("./_functions"); // These folders must exist for nodemon not to loop indefinitely. [ diff --git a/src/frontend/AssetCompiler.ts b/src/frontend/AssetCompiler.ts index afcab5d..9206210 100644 --- a/src/frontend/AssetCompiler.ts +++ b/src/frontend/AssetCompiler.ts @@ -1,9 +1,12 @@ import child_process from "child_process"; import config from "config"; import fs from "fs"; +import path from "path"; import {logger} from "../Logger.js"; -import {listFilesRecursively} from "../Utils.js"; +import {doesFileExist, listFilesRecursively} from "../Utils.js"; + +const ROLLUP_CONFIG_FILE_NAME = 'rollup.config.js'; export default class AssetCompiler { private rollup?: child_process.ChildProcess; @@ -35,9 +38,12 @@ export default class AssetCompiler { const production = !config.get('view.dev'); if (!this.rollup) { + const rollupConfigPath = await doesFileExist(ROLLUP_CONFIG_FILE_NAME) ? + ROLLUP_CONFIG_FILE_NAME : + path.resolve('node_modules/swaf/' + ROLLUP_CONFIG_FILE_NAME); const args = [ 'rollup', - '-c', 'rollup.config.js', + '-c', rollupConfigPath, '--environment', `ENV:${production ? 'production' : 'dev'},BUILD_DIR:${this.sourceDir},PUBLIC_DIR:${this.targetDir},INPUT:${input.join(':')}`, ]; if (watch) args.push('--watch');