port buildManifest lib
This commit is contained in:
@@ -28,7 +28,6 @@
|
||||
"no-new": 2,
|
||||
"no-octal-escape": 2,
|
||||
"no-octal": 2,
|
||||
"no-param-reassign": 2,
|
||||
"no-process-env": 2,
|
||||
"no-proto": 2,
|
||||
"no-implied-eval": 2,
|
||||
|
||||
@@ -2,7 +2,7 @@ var fs = require('fs');
|
||||
var path = require('path');
|
||||
var nconf = require('nconf');
|
||||
var _ = require('lodash');
|
||||
var manifestFiles = require("../../public/manifest.json");
|
||||
var manifestFiles = require("../../../public/manifest.json");
|
||||
|
||||
var IS_PROD = nconf.get('NODE_ENV') === 'production';
|
||||
var buildFiles = [];
|
||||
@@ -15,7 +15,7 @@ var walk = function(folder){
|
||||
if(fs.statSync(file).isDirectory()){
|
||||
walk(file);
|
||||
}else{
|
||||
var relFolder = path.relative(path.join(__dirname, "/../../build"), folder);
|
||||
var relFolder = path.relative(path.join(__dirname, "/../../../build"), folder);
|
||||
var old = fileName.replace(/-.{8}(\.[\d\w]+)$/, '$1');
|
||||
|
||||
if(relFolder){
|
||||
@@ -28,7 +28,7 @@ var walk = function(folder){
|
||||
});
|
||||
};
|
||||
|
||||
walk(path.join(__dirname, "/../../build"));
|
||||
walk(path.join(__dirname, "/../../../build"));
|
||||
|
||||
var getBuildUrl = module.exports.getBuildUrl = function(url){
|
||||
if(buildFiles[url]) return '/' + buildFiles[url];
|
||||
@@ -0,0 +1,62 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import nconf from 'nconf';
|
||||
|
||||
const MANIFEST_FILE_PATH = path.join(__dirname, '/../../../public/manifest.json');
|
||||
const BUILD_FOLDER_PATH = path.join(__dirname, '/../../../build');
|
||||
let manifestFiles = require(MANIFEST_FILE_PATH);
|
||||
|
||||
const IS_PROD = nconf.get('IS_PROD');
|
||||
let buildFiles = [];
|
||||
|
||||
function _walk (folder) {
|
||||
let files = fs.readdirSync(folder);
|
||||
|
||||
files.forEach((fileName) => {
|
||||
let file = `${folder}/${fileName}`;
|
||||
|
||||
if (fs.statSync(file).isDirectory()) {
|
||||
_walk(file);
|
||||
} else {
|
||||
let relFolder = path.relative(BUILD_FOLDER_PATH, folder);
|
||||
let original = fileName.replace(/-.{8}(\.[\d\w]+)$/, '$1'); // Match the hash part of the filename
|
||||
|
||||
if (relFolder) {
|
||||
original = `${relFolder}/${original}`;
|
||||
fileName = `${relFolder}/${fileName}`;
|
||||
}
|
||||
|
||||
buildFiles[original] = fileName;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Walks through all the files in the build directory
|
||||
// and creates a map of original files names and hashed files names
|
||||
_walk(BUILD_FOLDER_PATH);
|
||||
|
||||
export function getBuildUrl (url) {
|
||||
return `/${buildFiles[url] || url}`;
|
||||
}
|
||||
|
||||
export function getManifestFiles (page) {
|
||||
let files = manifestFiles[page];
|
||||
|
||||
if (!files) throw new Error(`Page "${page}" not found!`);
|
||||
|
||||
let htmlCode = '';
|
||||
|
||||
if (IS_PROD) {
|
||||
htmlCode += `<link rel="stylesheet" type="text/css" href="${getBuildUrl(page + '.css')}">`; // eslint-disable-line prefer-template
|
||||
htmlCode += `<script type="text/javascript" src="${getBuildUrl(page + '.js')}"></script>`; // eslint-disable-line prefer-template
|
||||
} else {
|
||||
files.css.forEach((file) => {
|
||||
htmlCode += `<link rel="stylesheet" type="text/css" href="${getBuildUrl(file)}">`;
|
||||
});
|
||||
files.js.forEach((file) => {
|
||||
htmlCode += `<script type="text/javascript" src="${getBuildUrl(file)}"></script>`;
|
||||
});
|
||||
}
|
||||
|
||||
return htmlCode;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ var _ = require('lodash');
|
||||
var utils = require('../libs/utils');
|
||||
var shared = require('../../../common');
|
||||
var i18n = require('../libs/api-v2/i18n');
|
||||
var buildManifest = require('../libs/buildManifest');
|
||||
var buildManifest = require('../libs/api-v2/buildManifest');
|
||||
var shared = require('../../../common');
|
||||
var forceRefresh = require('./forceRefresh');
|
||||
var tavernQuest = require('../models/group').tavernQuest;
|
||||
|
||||
Reference in New Issue
Block a user