0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00

build member-attribution.js at build time

This commit is contained in:
Michael Barrett 2024-12-13 11:09:04 +00:00
parent cb8a176cdb
commit 4a9f2305f6
No known key found for this signature in database
8 changed files with 6 additions and 65 deletions

2
.gitignore vendored
View file

@ -123,7 +123,7 @@ test/functional/*.png
/ghost/core/core/built
/ghost/core/core/frontend/public/ghost.min.css
/ghost/core/core/frontend/public/comment-counts.min.js
/ghost/core/core/frontend/public/member-attribution.min.js
# Caddyfile - for local development with ssl + caddy
Caddyfile

View file

@ -16,7 +16,7 @@ const logging = require('@tryghost/logging');
const tpl = require('@tryghost/tpl');
const themeEngine = require('./frontend/services/theme-engine');
const appService = require('./frontend/services/apps');
const {adminAuthAssets, cardAssets, memberAttributionAssets} = require('./frontend/services/assets-minification');
const {adminAuthAssets, cardAssets} = require('./frontend/services/assets-minification');
const routerManager = require('./frontend/services/routing').routerManager;
const settingsCache = require('./shared/settings-cache');
const urlService = require('./server/services/url');
@ -73,7 +73,6 @@ class Bridge {
// TODO: is this in the right place?
// rebuild asset files
adminAuthAssets.invalidate();
memberAttributionAssets.invalidate();
} catch (err) {
logging.error(new errors.InternalServerError({
message: tpl(messages.activateFailed, {theme: loadedTheme.name}),

View file

@ -1,45 +0,0 @@
const Minifier = require('@tryghost/minifier');
const path = require('path');
const config = require('../../../shared/config');
const AssetsMinificationBase = require('./AssetsMinificationBase');
module.exports = class MemberAttributionAssets extends AssetsMinificationBase {
constructor(options = {}) {
super(options);
/** @private */
this.src = options.src || path.join(config.get('paths').assetSrc, 'member-attribution');
/** @private */
this.dest = options.dest || config.getContentPath('public');
this.minifier = new Minifier({src: this.src, dest: this.dest});
}
/**
* @override
*/
generateGlobs() {
return {
'member-attribution.min.js': '*.js'
};
}
/**
* @private
*/
generateReplacements() {
return {};
}
/**
* Minify, move into the destination directory, and clear existing asset files.
*
* @override
* @returns {Promise<void>}
*/
async load() {
const globs = this.generateGlobs();
const replacements = this.generateReplacements();
await this.minify(globs, {replacements});
}
};

View file

@ -1,13 +1,10 @@
const AdminAuthAssets = require('./AdminAuthAssets');
const CardAssets = require('./CardAssets');
const MemberAttributionAssets = require('./MemberAttributionAssets');
const adminAuthAssets = new AdminAuthAssets();
const cardAssets = new CardAssets();
const memberAttributionAssets = new MemberAttributionAssets();
module.exports = {
adminAuthAssets,
cardAssets,
memberAttributionAssets
cardAssets
};

View file

@ -1,10 +0,0 @@
{
"extends": "../../../../.eslintrc.js",
"env": {
"browser": true,
"node": false
},
"rules": {
"no-console": "off"
}
}

View file

@ -16,7 +16,7 @@ const membersService = require('../../server/services/members');
const offersService = require('../../server/services/offers');
const customRedirects = require('../../server/services/custom-redirects');
const linkRedirects = require('../../server/services/link-redirection');
const {cardAssets, memberAttributionAssets} = require('../services/assets-minification');
const {cardAssets} = require('../services/assets-minification');
const siteRoutes = require('./routes');
const shared = require('../../server/web/shared');
const errorHandler = require('@tryghost/mw-error-handler');
@ -80,7 +80,7 @@ module.exports = function setupSiteApp(routerConfig) {
siteApp.use(mw.servePublicFile('static', 'public/comment-counts.min.js', 'application/javascript', config.get('caching:publicAssets:maxAge')));
// Member attribution
siteApp.use(memberAttributionAssets.serveMiddleware(), mw.servePublicFile('built', 'public/member-attribution.min.js', 'application/javascript', config.get('caching:publicAssets:maxAge')));
siteApp.use(mw.servePublicFile('static', 'public/member-attribution.min.js', 'application/javascript', config.get('caching:publicAssets:maxAge')));
// Serve site images using the storage adapter
siteApp.use(STATIC_IMAGE_URL_PREFIX, mw.handleImageSizes, storage.getStorage('images').serve());

View file

@ -23,7 +23,7 @@
"archive": "npm pack",
"dev": "node --watch index.js",
"build:assets:css": "postcss core/frontend/public/ghost.css --no-map --use cssnano -o core/frontend/public/ghost.min.css",
"build:assets:js": "../minifier/bin/minify core/frontend/public/comment-counts.js core/frontend/public/comment-counts.min.js",
"build:assets:js": "../minifier/bin/minify core/frontend/public/comment-counts.js core/frontend/public/comment-counts.min.js && ../minifier/bin/minify core/frontend/public/member-attribution.js core/frontend/public/member-attribution.min.js",
"build:assets": "yarn build:assets:css && yarn build:assets:js",
"test": "yarn test:unit",
"test:base": "mocha --reporter dot --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js",