ExtraStatic: powerful and easy publishing

Skip to content
Snippets Groups Projects

Permit running without node_modules

Open Chris Dawson requested to merge run_without_node_modules_npx into main
3 files
+ 75
19
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 16
15
@@ -24,10 +24,11 @@ const indent = [
"", "", " ", " ", " "
];
const logLevel = process.env.LOG_LEVEL ? parseInt(process.env.LOG_LEVEL, 10) : 1;
const logLevelEnv = process.env.SVEKYLL_LOG_LEVEL || process.env.LOG_LEVEL;
const logLevel = logLevelEnv ? parseInt(logLevelEnv, 10) : 1;
function logger(priority, ...msg) {
if (priority <= logLevel ) {
export function logger(priority, ...msg) {
if (priority <= logLevel) {
const color = colors[priority] || 'green';
console.log(date(new Date().toLocaleString()), indent[priority], chalk[color](...msg));
}
@@ -77,7 +78,7 @@ import cheerio from 'cheerio';
import { verifyRootDirectory, verifyBuildDirectory, verifyRss } from './verify.js';
export function bootstrap() {
export function bootstrap(root) {
const converter = new showdown.Converter();
const tmpobj = tmp.dirSync();
const base = tmpobj.name;
@@ -105,8 +106,8 @@ export function bootstrap() {
const tailwind = {
content: [
"./node_modules/svekyll-cli/src/**/*.{svelte,md,mdx}",
"./node_modules/svekyll-cli/svekyll/**/*.{svelte,md,mdx}"
join( root, "node_modules/svekyll-cli/src/**/*.{svelte,md,mdx}" ),
join( root, "node_modules/svekyll-cli/svekyll/**/*.{svelte,md,mdx}" )
],
theme: {
extend: {}
@@ -150,7 +151,7 @@ export function bootstrap() {
root: process.env.ROOT,
resolve: {
alias: {
$svekyll: resolve('./node_modules/svekyll-cli/svekyll'),
$svekyll: resolve(join(root, 'node_modules/svekyll-cli/svekyll')),
$config: resolve(base),
'@components': resolve('./lib/components'),
'@lib': resolve('./lib'),
@@ -166,7 +167,7 @@ export function bootstrap() {
if (!config.page_size) {
config.page_size = 10;
}
const templates = loadTemplates();
const templates = loadTemplates(root);
const transformers = { converter, vite, svelte, tailwind, mdsvex };
return { transformers, templates, blogs, config };
}
@@ -184,22 +185,22 @@ export function verify() {
verifyRss();
}
function loadFromLocalOrNodeModules(f) {
function loadFromLocalOrNodeModules(root, f) {
let file = "";
try {
file = fs.readFileSync("./" + f).toString();
} catch( err ) {
error(`Unable to find local ${f}, loading from node modules`);
file = fs.readFileSync("./node_modules/svekyll-cli/" + f).toString();
file = fs.readFileSync(join(root, "node_modules/svekyll-cli/" + f)).toString();
}
return file;
}
export function loadTemplates() {
const indexRoot = loadFromLocalOrNodeModules("index.html");
const indexSvelte = loadFromLocalOrNodeModules("src/Index.svelte");
const pageSvelte = loadFromLocalOrNodeModules("src/Page.svelte");
const indexHtml = loadFromLocalOrNodeModules("src/index.html");
export function loadTemplates(root) {
const indexRoot = loadFromLocalOrNodeModules(root, "index.html");
const indexSvelte = loadFromLocalOrNodeModules(root, "src/Index.svelte");
const pageSvelte = loadFromLocalOrNodeModules(root, "src/Page.svelte");
const indexHtml = loadFromLocalOrNodeModules(root, "src/index.html");
let userCss = "";
try {
Loading