Ghost-Admin/lib/asset-delivery/index.js

52 lines
1.6 KiB
JavaScript

/* eslint-disable */
'use strict';
module.exports = {
name: 'asset-delivery',
isDevelopingAddon() {
return true;
},
contentFor(type, config) {
let min = config.environment === 'production' ? '.min' : '';
if (type === 'minifiedInProductionCss') {
return `
<link rel="stylesheet" href="assets/vendor${min}.css">
<link rel="stylesheet" href="assets/ghost${min}.css" title="light">
`;
}
if (type === 'minifiedInProductionJs') {
return `
<script src="assets/vendor${min}.js"></script>
<script src="assets/ghost${min}.js"></script>
`;
}
},
postBuild: function (results) {
var fs = this.project.require('fs-extra'),
walkSync = this.project.require('walk-sync'),
assetsIn = results.directory + '/assets',
templateOutDir = '../server/web/admin/views',
assetsOut = '../built/assets',
assets = walkSync(assetsIn);
fs.ensureDirSync(assetsOut);
if (fs.existsSync(results.directory + '/index.min.html')) {
fs.copySync(results.directory + '/index.min.html', `${templateOutDir}/default-prod.html`, {overwrite: true});
} else {
fs.copySync(results.directory + '/index.html', `${templateOutDir}/default.html`, {overwrite: true});
}
assets.forEach(function (relativePath) {
if (relativePath.slice(-1) === '/') { return; }
fs.copySync(assetsIn + '/' + relativePath, assetsOut + '/' + relativePath, {overwrite: true});
});
}
};