进行了一些小修复
This commit is contained in:
Generated
+1
@@ -21,6 +21,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^5.1.0",
|
||||
"esbuild": "^0.25.12",
|
||||
"vite": "^6.0.0"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"name":"aksrt-admin","version":"1.0.0","private":true,"type":"module","scripts":{"dev":"vite","build":"vite build && node extract-naive-styles.mjs","preview":"vite preview"},"dependencies":{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.5","@codemirror/theme-one-dark":"^6.1.3","codemirror":"^6.0.2","naive-ui":"^2.40.0","pinia":"^2.2.0","vue":"^3.5.0","vue-router":"^4.4.0","vuedraggable":"^4.1.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.1.0","vite":"^6.0.0"}}
|
||||
{"name":"aksrt-admin","version":"1.0.0","private":true,"type":"module","scripts":{"dev":"vite","build":"vite build && node extract-naive-styles.mjs","build:public":"node ../../tools/build-public-assets.mjs","preview":"vite preview"},"dependencies":{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.5","@codemirror/theme-one-dark":"^6.1.3","codemirror":"^6.0.2","naive-ui":"^2.40.0","pinia":"^2.2.0","vue":"^3.5.0","vue-router":"^4.4.0","vuedraggable":"^4.1.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.1.0","esbuild":"^0.25.12","vite":"^6.0.0"}}
|
||||
|
||||
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+8
File diff suppressed because one or more lines are too long
@@ -19,10 +19,13 @@ trait ScriptsPart1b {
|
||||
$wp_scripts->registered['jquery']->deps = ['jquery-core'];
|
||||
}
|
||||
wp_enqueue_script('jquery');
|
||||
$public_bundle = get_template_directory() . '/assets/css/build/public.css';
|
||||
$public_filename = file_exists(get_template_directory() . '/assets/css/build/public.min.css')
|
||||
? 'public.min.css'
|
||||
: 'public.css';
|
||||
$public_bundle = get_template_directory() . '/assets/css/build/' . $public_filename;
|
||||
wp_enqueue_style(
|
||||
'aksrt-public',
|
||||
$base_uri . '/assets/css/build/public.css',
|
||||
$base_uri . '/assets/css/build/' . $public_filename,
|
||||
[],
|
||||
file_exists($public_bundle) ? (string) filemtime($public_bundle) : $version
|
||||
);
|
||||
@@ -585,10 +588,13 @@ trait ScriptsPart1b {
|
||||
}
|
||||
|
||||
if ($is_fixed_homepage) {
|
||||
$homepage_bundle = get_template_directory() . '/assets/css/build/homepage.css';
|
||||
$homepage_filename = file_exists(get_template_directory() . '/assets/css/build/homepage.min.css')
|
||||
? 'homepage.min.css'
|
||||
: 'homepage.css';
|
||||
$homepage_bundle = get_template_directory() . '/assets/css/build/' . $homepage_filename;
|
||||
wp_enqueue_style(
|
||||
'aksrt-homepage-fixed',
|
||||
$base_uri . '/assets/css/build/homepage.css',
|
||||
$base_uri . '/assets/css/build/' . $homepage_filename,
|
||||
['aksrt-public'],
|
||||
file_exists($homepage_bundle) ? (string) filemtime($homepage_bundle) : $version
|
||||
);
|
||||
|
||||
@@ -431,3 +431,36 @@ test('legacy frontend toast APIs and selectors are fully removed', () => {
|
||||
const offenders = scanned.filter((file) => legacy.test(fs.readFileSync(file, 'utf8')));
|
||||
assert.deepEqual(offenders.map((file) => path.relative(root, file)), []);
|
||||
});
|
||||
|
||||
test('public CSS bundles have parser-minified production variants', () => {
|
||||
const builder = read('tools/build-public-assets.mjs');
|
||||
|
||||
assert.match(builder, /require\('esbuild'\)/);
|
||||
assert.match(builder, /loader: 'css'/);
|
||||
assert.match(builder, /minify: true/);
|
||||
|
||||
for (const basename of ['public', 'homepage']) {
|
||||
const readablePath = path.join(root, 'assets', 'css', 'build', `${basename}.css`);
|
||||
const minifiedPath = path.join(root, 'assets', 'css', 'build', `${basename}.min.css`);
|
||||
|
||||
assert.equal(fs.existsSync(readablePath), true, `${basename}.css must exist`);
|
||||
assert.equal(fs.existsSync(minifiedPath), true, `${basename}.min.css must exist`);
|
||||
assert.ok(
|
||||
fs.statSync(minifiedPath).size < fs.statSync(readablePath).size * 0.9,
|
||||
`${basename}.min.css should be at least 10% smaller`,
|
||||
);
|
||||
assert.doesNotMatch(fs.readFileSync(minifiedPath, 'utf8'), /\/\* source:/);
|
||||
}
|
||||
});
|
||||
|
||||
test('WordPress loads minified CSS with a readable-bundle fallback', () => {
|
||||
const scripts = read('src/Core/ScriptsPart1b.php');
|
||||
|
||||
for (const basename of ['public', 'homepage']) {
|
||||
assert.ok(
|
||||
scripts.includes(`file_exists(get_template_directory() . '/assets/css/build/${basename}.min.css')`),
|
||||
);
|
||||
assert.match(scripts, new RegExp(`\\? '${basename}\\.min\\.css'`));
|
||||
assert.match(scripts, new RegExp(`: '${basename}\\.css'`));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
||||
import { createRequire } from 'node:module';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const require = createRequire(path.join(repoRoot, 'assets/admin/package.json'));
|
||||
const { transform } = require('esbuild');
|
||||
const cssBuildDir = path.join(repoRoot, 'assets/css/build');
|
||||
const jsBuildDir = path.join(repoRoot, 'assets/js/build');
|
||||
|
||||
@@ -133,7 +136,20 @@ async function buildCssBundle(outputName, sources) {
|
||||
const sourcePath = path.join(repoRoot, source);
|
||||
sections.push(`/* source: ${source} */\n${await expandCss(sourcePath, outputPath)}`);
|
||||
}
|
||||
await writeFile(outputPath, `${sections.join('\n\n')}\n`, 'utf8');
|
||||
const bundle = `${sections.join('\n\n')}\n`;
|
||||
const minified = await transform(bundle, {
|
||||
charset: 'utf8',
|
||||
legalComments: 'inline',
|
||||
loader: 'css',
|
||||
minify: true,
|
||||
sourcefile: outputName,
|
||||
});
|
||||
const minifiedPath = outputPath.replace(/\.css$/, '.min.css');
|
||||
|
||||
await Promise.all([
|
||||
writeFile(outputPath, bundle, 'utf8'),
|
||||
writeFile(minifiedPath, minified.code, 'utf8'),
|
||||
]);
|
||||
}
|
||||
|
||||
async function buildScriptBundle() {
|
||||
|
||||
Reference in New Issue
Block a user