Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 14 additions & 11 deletions build/gen-mplus.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@ import process from 'process'
import util from 'util'
import zlib from 'zlib'

import * as lightningcss from 'lightningcss'
import axios from 'axios'
import browserslist from 'browserslist'
import esbuild from 'esbuild'
import { resolveToEsbuildTarget } from 'esbuild-plugin-browserslist'
import { createFont, woff2 } from 'fonteditor-core'
import postcss from 'postcss'

Expand Down Expand Up @@ -88,7 +87,7 @@ const generateFilename = font => {
return `${family}.${weight}.${fontSrcWithId[1]}.woff2`
}

const downloadAndtransform = async (url, filename) => {
const downloadAndTransform = async (url, filename) => {
const res = await axios.get(url, { responseType: 'arraybuffer' })
const readBuffer = Buffer.from(res.data, 'binary')
try {
Expand Down Expand Up @@ -152,26 +151,30 @@ const generateFontFace = (font, filename) => {
const fontFaceText = generateFontFace(font, filename)

promises.push(
downloadAndtransform(getUrlFromSrc(font.src), filename).catch(() =>
downloadAndtransform(getUrlFromSrc(font.src), filename)
downloadAndTransform(getUrlFromSrc(font.src), filename).catch(() =>
downloadAndTransform(getUrlFromSrc(font.src), filename)
)
)

cssText += fontFaceText
}
const { code: minifiedCssText, warnings } = await esbuild.transform(cssText, {
loader: 'css',

const targets = ligtningcss.browserslistToTargets(
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

重大なタイポ: ligtningcsslightningcss であるべきです。

ligtningcss は未定義のため、このスクリプト実行時に ReferenceError が発生します。

🐛 修正案
-  const targets = ligtningcss.browserslistToTargets(
+  const targets = lightningcss.browserslistToTargets(
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const targets = ligtningcss.browserslistToTargets(
const targets = lightningcss.browserslistToTargets(
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@build/gen-mplus.js` at line 162, There is a typo: the identifier
`ligtningcss` used when calling `browserslistToTargets` is undefined; rename it
to the correct `lightningcss` everywhere it's used (e.g., the call that assigns
`targets`) and ensure the module import/require that provides `lightningcss`
matches that identifier so `lightningcss.browserslistToTargets(...)` resolves
correctly.

browserslist('baseline widely available')
)
const { code: minifiedCss } = lightningcss.transform({
filename: 'fonts.css',
code: Buffer.from(cssText),
minify: true,
target: resolveToEsbuildTarget(browserslist())
targets: targets
})
if (warnings.length > 0) console.warn(warnings)

promises.push(
fs.writeFile(path.join(rootPath, './fonts.css'), minifiedCssText, 'utf-8')
fs.writeFile(path.join(rootPath, './fonts.css'), minifiedCss, 'utf-8')
)

const brotliPromise = (async () => {
const compressed = await brotliCompress(minifiedCssText, {
const compressed = await brotliCompress(minifiedCss, {
params: {
[zlib.constants.BROTLI_PARAM_MODE]: zlib.constants.BROTLI_MODE_TEXT,
[zlib.constants.BROTLI_PARAM_QUALITY]: zlib.constants.BROTLI_MAX_QUALITY
Expand Down
Loading
Loading