@yongdall/build 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.mjs +3 -1
- package/index.mjs.map +1 -1
- package/package.json +2 -2
package/index.mjs
CHANGED
|
@@ -60,6 +60,7 @@ const root = process.env.BUILD_PLUGIN_ROOT || process.env.npm_config_local_prefi
|
|
|
60
60
|
* @prop {(string | Copy[])} [copy]
|
|
61
61
|
* @prop {Build} [build]
|
|
62
62
|
* @prop {string} [assetsDir]
|
|
63
|
+
* @prop {boolean} [noPackage]
|
|
63
64
|
*/
|
|
64
65
|
/** @type {Config?} */
|
|
65
66
|
const config = await loadConfiguration(pathFn.resolve(root, "build.yongdall"));
|
|
@@ -88,6 +89,7 @@ const distDir = (config.dist || "dist").replace(/\{%([^%]*)%\}/g, (_, name) => {
|
|
|
88
89
|
const distRoot = pathPosix.join(root, distDir === "." ? "" : distDir);
|
|
89
90
|
const assetsDir = config.assetsDir || "assets";
|
|
90
91
|
const assetsRoot = pathFn.resolve(root, assetsDir);
|
|
92
|
+
const noPackage = Boolean(config.noPackage);
|
|
91
93
|
|
|
92
94
|
//#endregion
|
|
93
95
|
//#region cli/build/buildDts.mjs
|
|
@@ -599,7 +601,7 @@ const points = await buildAssets();
|
|
|
599
601
|
const polyfill = await buildPolyfill();
|
|
600
602
|
const backPoints = await buildBack();
|
|
601
603
|
await buildAssetsMjs(points, polyfill);
|
|
602
|
-
await buildPackage(backPoints, points);
|
|
604
|
+
if (!noPackage) await buildPackage(backPoints, points);
|
|
603
605
|
|
|
604
606
|
//#endregion
|
|
605
607
|
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["pathFn"],"sources":["../../cli/build/config.mjs","../../cli/build/buildDts.mjs","../../cli/build/createExternal.mjs","../../cli/build/buildAssets.mjs","../../cli/build/copy.mjs","../../cli/build/buildBack.mjs","../../cli/build/buildPackage.mjs","../../cli/build/buildAssetsMjs.mjs","../../cli/build/buildPolyfill.mjs","../../cli/build/index.mjs"],"sourcesContent":["\nimport * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport loadConfiguration from '@yongdall/load-configuration';\n\nexport const root = process.env.BUILD_PLUGIN_ROOT || process.env.npm_config_local_prefix || '';\n\n/**\n * @typedef {object} AssetsBuild\n * @prop {string} [dir]\n * @prop {string} [dts]\n * @prop {Record<string, string | [string, string?]>} [inputs]\n * @prop {Record<string, string>} [exports]\n * @prop {Record<string, string>} [imports]\n * @prop {Record<string, string>} [alias]\n * @prop {string} [hooks]\n * @prop {string[]} [styles]\n * @prop {string[]} [external]\n * @prop {any[]} [plugins]\n * @prop {string[]} [polyfill]\n * @prop {boolean} [sourcemap]\n */\n/**\n * @typedef {object} Build\n * @prop {string} [dir] \n * @prop {string} [target] \n * @prop {string} [dts]\n * @prop {string[]} [inputs] 入口文件\n * @prop {Record<string, string | [string, string?]>} [exports] 导出文件\n * @prop {Record<string, string>} [imports] 内部别名\n * @prop {Record<string, string> | string} [bin] 二进制文件\n * @prop {string[]} [external]\n */\n/**\n * @typedef {object} NodeModule\n * @prop {string} [dir]\n * @prop {Record<string, string>} [esm]\n * @prop {Record<string, Record<string, string>>} [importmap]\n */\n/**\n * @typedef {object} Copy\n * @prop {string} [from]\n * @prop {string} [to]\n * @prop {string | string[]} files\n * @prop {boolean} [assets]\n */\n/**\n * @typedef {object} Config\n * @prop {string} [package]\n * @prop {string} [dist]\n * @prop {AssetsBuild} [assetsBuild]\n * @prop {Record<string, Record<string, string>>} [importmap]\n * @prop {Record<string, NodeModule>} [nodeModules]\n * @prop {(string | Copy[])} [copy]\n * @prop {Build} [build]\n * @prop {string} [assetsDir]\n */\n/** @type {Config?} */\nexport const config = await loadConfiguration(pathFn.resolve(root, 'build.yongdall'));\nif (!config) {\n\tconsole.error('读取定义配置文件失败');\n\tprocess.exit();\n}\n\nexport const packagePath = pathFn.join(root, config.package || 'package.json');\nexport const assetsBuild = config.assetsBuild;\nexport const build = config.build;\nexport const copyFiles = config.copy || [];\nexport const importmap = config.importmap;\nexport const nodeModules = config.nodeModules;\n\n/** @type {Record<string, any>} */\nexport const nodePackage = await loadConfiguration(packagePath).then(v => v || {}, () => ({}));\n\n\nconst distDir = (config.dist || 'dist').replace(/\\{%([^%]*)%\\}/g, (_, name) => {\n\tswitch (name) {\n\t\tcase 'name': {\n\t\t\tconst name = nodePackage.name;\n\t\t\tif (name && typeof name === 'string') { return name; }\n\t\t}\n\t\tcase 'dir': return pathFn.basename(pathFn.resolve(root));\n\t}\n\treturn _;\n});\nexport const distRoot = pathPosix.join(root, distDir === '.' ? '' : distDir);\n\nexport const assetsDir = config.assetsDir || 'assets';\nexport const assetsRoot = pathFn.resolve(root, assetsDir);\n","import * as pathFn from 'node:path';\nimport * as fsPromises from 'node:fs/promises';\nimport * as os from 'node:os';\nimport { rolldown } from 'rolldown';\nimport { dts } from 'rolldown-plugin-dts';\nimport * as ts from 'typescript';\n\n\nconst extNames = ['.d.ts', '.d.mts', '.ts', '.mts', '.js', '.mjs'];\n/**\n * \n * @param {string} assetRoot \n */\nasync function findFiles(assetRoot) {\n\tconst files = new Set();\n\tconst list2 = [];\n\tfor await (const f of fsPromises.glob('**/*.{mjs,js,mts,ts}', {\n\t\tcwd: assetRoot, exclude: ['node_modules/**']\n\t})) {\n\t\tif (f.startsWith('node_modules/') || f.includes('/node_modules/')) { continue; }\n\t\tfor (const e of extNames) {\n\t\t\tif (!f.endsWith(e)) { continue; }\n\t\t\tif (e.includes('.d.')) {\n\t\t\t\tlist2.push(f.slice(0, f.length - e.length) + e.slice(2));\n\t\t\t\tlist2.push(f.slice(0, f.length - e.length) + e.slice(2).replace('t', 'j') || '');\n\t\t\t} else {\n\t\t\t\tfiles.add(f);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const f of list2) {\n\t\tfiles.delete(f);\n\t}\n\tif (!files.size) { return null; }\n\treturn files;\n\n}\n\n/**\n * 使用 TypeScript Compiler API 编译指定文件,仅生成 .d.ts 声明文件\n * @param {string[]} files - 要编译的文件路径列表(相对于 root)\n * @param {string} root - 工作目录(cwd)\n */\nasync function compileDeclarations(files, root) {\n\t// 创建编译程序\n\tconst program = ts.createProgram(files.map(f => pathFn.resolve(root, f)), {\n\t\tstrict: true,\n\t\tallowJs: true,\n\t\tmoduleResolution: ts.ModuleResolutionKind.Bundler,\n\t\tdeclaration: true,\n\t\temitDeclarationOnly: true,\n\t\tmodule: ts.ModuleKind.ESNext,\n\t\ttarget: ts.ScriptTarget.ESNext,\n\t\toutDir: root,\n\t\trootDir: root,\n\n\t\t// 你额外要求的关键选项(CLI 不支持,但 API 支持!)\n\t\tverbatimModuleSyntax: true,\n\t\tallowSyntheticDefaultImports: false,\n\t\tcustomConditions: ['types', 'typings', 'module', 'node'],\n\n\t\t// 可选:提升兼容性\n\t\tskipLibCheck: true,\n\t\tesModuleInterop: false,\n\t});\n\n\tconst emitResult = program.emit();\n\n\t// 获取所有诊断信息(包括语法错误、类型错误等)\n\tconst diagnostics = ts\n\t\t.getPreEmitDiagnostics(program)\n\t\t.concat(emitResult.diagnostics);\n\n\tconst errors = diagnostics.filter(v => v.category === ts.DiagnosticCategory.Error);\n\tif (errors.length > 0) {\n\t\tconst message = ts.formatDiagnosticsWithColorAndContext(errors, {\n\t\t\tgetCurrentDirectory: () => root,\n\t\t\tgetCanonicalFileName: fileName => fileName,\n\t\t\tgetNewLine: () => os.EOL,\n\t\t});\n\t\tconsole.error(message); // 相当于 stderr 输出\n\t\tthrow new Error(`TS 编译错误: ${message}`);\n\t}\n\n}\n\n/**\n * \n * @param {Record<string, string>} input \n * @param {string} root \n * @param {string} outdir \n * @param {object} [options]\n * @param {string[] | ((is: string) => boolean)} [options.external] \n * @param {boolean} [options.tsc] \n * @returns \n */\nexport default async function buildDts(input, root, outdir, {\n\texternal, tsc\n} = {}) {\n\n\n\n\tconst files = (Object.values(input).find(v => v.endsWith('.js') || v.endsWith('.mjs')) || tsc) && await findFiles(root);\n\tif (files) {\n\t\tawait compileDeclarations([...files], root);\n\t}\n\n\n\t// === 第二步:DTS 构建 — 生成 .d.mts ===\n\tconst dtsBundle = await rolldown({\n\t\tinput,\n\t\texternal,\n\t\tplugins: [\n\t\t\tdts({\n\t\t\t\temitDtsOnly: true,\n\t\t\t\tcompilerOptions: {\n\t\t\t\t\tallowJs: true,\n\t\t\t\t\tmoduleResolution: 'Bundler',\n\t\t\t\t\tdeclaration: true,\n\t\t\t\t\tmodule: 'ESNext',\n\t\t\t\t\ttarget: 'ESNext',\n\t\t\t\t\temitDeclarationOnly: true,\n\t\t\t\t\tverbatimModuleSyntax: true,\n\t\t\t\t\tstrict: true,\n\t\t\t\t\tallowSyntheticDefaultImports: false,\n\t\t\t\t\tcustomConditions: ['types', 'typings', 'module', 'node'],\n\t\t\t\t\tskipLibCheck: true,\n\n\t\t\t\t},\n\t\t\t}),\n\t\t],\n\t});\n\n\tconst { output } = await dtsBundle.generate({\n\t\tdir: outdir,\n\t\tformat: 'esm',\n\t\tsourcemap: false,\n\t\tentryFileNames: '[name].mjs',\n\t\tchunkFileNames: '[name]-[hash].mjs',\n\t});\n\n\tfor (const chunkOrAsset of output) {\n\t\tif (!chunkOrAsset.fileName.endsWith('.d.mts')) { continue; }\n\t\tconst filePath = pathFn.resolve(outdir, chunkOrAsset.fileName);\n\t\tawait fsPromises.mkdir(pathFn.dirname(filePath), { recursive: true });\n\n\t\t// @ts-ignore\n\t\tconst content = chunkOrAsset.code ?? chunkOrAsset.source;\n\t\tawait fsPromises.writeFile(filePath, content || '');\n\t}\n\n\tif (files) {\n\t\tawait Promise.allSettled(\n\t\t\t[...files].map(v => v.replace(/\\.(m?)[jt]s$/, '.d.$1ts'))\n\t\t\t\t.map(path => fsPromises.unlink(pathFn.resolve(root, path)))\n\t\t);\n\t}\n\n\n}\n","/**\n * \n * @param {Set<string>} dependencies \n * @param {Set<string>} externals \n * @param {boolean} [node] \n * @returns {(id: string) => boolean}\n */\nexport default function createExternal(dependencies, externals, node) {\n\treturn id => {\n\t\tif (node && id.startsWith('node:')) { return true; }\n\t\tif (externals.has(id)) { return true; }\n\t\tif (dependencies.has(id)) { return true; }\n\t\tlet index = id.indexOf('/');\n\t\tif (index > 0 && id[0] === '@') {\n\t\t\tindex = id.indexOf('/', index + 1);\n\t\t}\n\t\tconst name = id.slice(0, index);\n\t\tif (!name) { return false; }\n\t\treturn dependencies.has(name);\n\t};\n}\n","import * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport { rolldown } from 'rolldown';\nimport { assetsDir, distRoot, root, assetsBuild, nodePackage } from './config.mjs';\nimport buildDts from './buildDts.mjs';\nimport createExternal from './createExternal.mjs';\n\nconst toNameRegex = /\\.[^.]+$/;\n\n\nexport default async function buildAssets() {\n\tif (!assetsBuild) return;\n\tconst list = Object.entries(assetsBuild.inputs || {});\n\tif (!list.length) return;\n\n\tconst outdir = pathPosix.join(distRoot, assetsDir);\n\tconst assetRoot = pathFn.join(root, assetsBuild.dir || '');\n\n\n\n\tconst dependencies = new Set([\n\t\t...nodePackage.name ? [nodePackage.name] : [],\n\t\t...Object.keys(nodePackage?.devDependencies || {}),\n\t\t...Object.keys(nodePackage?.peerDependencies || {}),\n\t\t...Object.keys(nodePackage?.optionalDependencies || {}),\n\t]);\n\tconst externals = new Set([\n\t\t...Object.keys(assetsBuild.imports || {}),\n\t\t...(assetsBuild.external || []),\n\t]);\n\t/** @type {(id: string) => boolean} */\n\tconst external = createExternal(dependencies, externals);\n\tif (assetsBuild.dts) {\n\n\t\tlet dtsInputs = list.map(([name, relPath]) => [name, pathFn.join(assetRoot, Array.isArray(relPath) ? relPath[1] || '' : relPath)]);\n\t\tdtsInputs = dtsInputs.filter(v => v[1]);\n\n\t\tif (dtsInputs.length) {\n\t\t\tawait buildDts(Object.fromEntries(dtsInputs), assetRoot, outdir, {\n\t\t\t\ttsc: true, external,\n\t\t\t});\n\t\t}\n\t}\n\tconst input = Object.fromEntries(\n\t\tlist.map(([name, relPath]) => [name, pathFn.join(assetRoot, Array.isArray(relPath) ? relPath[0] : relPath)])\n\t);\n\n\n\tconst bundle = await rolldown({\n\t\tinput,\n\t\texternal,\n\t\tplugins: assetsBuild.plugins || [],\n\t});\n\n\tconst result = await bundle.write({\n\t\tdir: outdir,\n\t\tformat: 'esm',\n\t\tsourcemap: assetsBuild.sourcemap !== false,\n\t\tentryFileNames: '[name].mjs',\n\t\tchunkFileNames: '[name]-[hash].mjs',\n\t\tminify: true,\n\t});\n\n\n\t/** @type {Record<string, Record<string, string>>} */\n\tconst points = {};\n\tfor (const { fileName } of result.output) {\n\t\tconst ext = pathPosix.extname(fileName);\n\t\tif (ext === '.map') { continue; }\n\t\tconst point = fileName.replace(toNameRegex, '');\n\t\tif (!Object.hasOwn(points, point)) {\n\t\t\tpoints[point] = {};\n\t\t}\n\t\tpoints[point][ext.slice(1)] = fileName;\n\t}\n\treturn points;\n\n}\n","import * as pathFn from 'node:path';\nimport * as fsPromises from 'node:fs/promises';\n\n/**\n * \n * @param {string} fPath \n * @param {string} tPath \n */\nexport default async function copy(fPath, tPath) {\n\tconst fStat = await fsPromises.lstat(fPath).catch(() => null);\n\tif (!fStat) { return; }\n\tif (fStat.isSymbolicLink() || fStat.isFile()) {\n\t\tconst tStat = await fsPromises.lstat(tPath).catch(() => null);\n\t\tif (tStat?.isDirectory()) {\n\t\t\tawait fsPromises.rmdir(tPath);\n\t\t} else if (tStat) {\n\t\t\tawait fsPromises.unlink(tPath);\n\t\t}\n\t\tawait fsPromises.mkdir(pathFn.dirname(tPath), { recursive: true });\n\t\tfsPromises.copyFile(fPath, tPath);\n\t}\n\tif (!fStat.isDirectory()) { return; }\n\tconst tStat = await fsPromises.lstat(tPath).catch(() => null);\n\tif (!tStat?.isDirectory()) {\n\t\tif (tStat) {\n\t\t\tawait fsPromises.unlink(tPath);\n\t\t}\n\t\tawait fsPromises.mkdir(tPath, { recursive: true });\n\t}\n\tfor (const file of await fsPromises.readdir(fPath)) {\n\t\tawait copy(pathFn.join(fPath, file), pathFn.join(tPath, file));\n\t}\n}\n\n/**\n * \n * @param {string} fPath \n * @param {string} tPath \n */\nexport async function copyDir(fPath, tPath) {\n\tconst fStat = await fsPromises.lstat(fPath).catch(() => null);\n\tif (!fStat?.isDirectory()) { return; }\n\tconst tStat = await fsPromises.lstat(tPath).catch(() => null);\n\tif (!tStat?.isDirectory()) {\n\t\tif (tStat) {\n\t\t\tawait fsPromises.unlink(tPath);\n\t\t}\n\t\tawait fsPromises.mkdir(tPath, { recursive: true });\n\t}\n\tfor (const file of await fsPromises.readdir(fPath)) {\n\t\tawait copy(pathFn.join(fPath, file), pathFn.join(tPath, file));\n\t}\n}\n","import * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport { rolldown } from 'rolldown';\nimport { distRoot, root, build, nodePackage } from './config.mjs';\nimport buildDts from './buildDts.mjs';\nimport createExternal from './createExternal.mjs';\n/**\n * @typedef {Object} BackPoints\n * @property {string | Record<string, string> | null} [bin] - 可执行脚本的路径,可以是字符串(单个入口)或对象(多个命名入口)。\n * @property {Record<string, string>?} [exports] - 模块导出映射,键为导出名称,值可以是模块路径字符串,或包含主入口和可选子路径的元组。\n * @property {Record<string, string>?} [imports] - 模块导入别名映射,用于在代码中通过别名引用模块。\n */\n\nconst regex = /^(?<name>.+)\\.(mjs|mts|js|ts)$/;\n/**\n * \n * @returns {Promise<BackPoints | undefined>}\n */\nexport default async function buildBack() {\n\tif (!build) { return; }\n\tconst inputRoot = pathFn.join(root, build.dir || '');\n\tconst outdir = pathPosix.join(distRoot, build.target || '.');\n\t/** @type {[string, string][] | undefined} */\n\tlet inputs = build.inputs?.map(path => {\n\t\tconst name = regex.exec(path)?.groups?.name;\n\t\tif (!name) { return ['', '']; }\n\t\treturn [name, path];\n\t}) || [];\n\tinputs = inputs.filter(v => v[0]);\n\tconst { bin, imports, exports } = build;\n\tconst dependencies = new Set([\n\t\t...nodePackage.name ? [nodePackage.name] : [],\n\t\t...Object.keys(nodePackage?.dependencies || {}),\n\t\t...Object.keys(nodePackage?.devDependencies || {}),\n\t\t...Object.keys(nodePackage?.peerDependencies || {}),\n\t\t...Object.keys(nodePackage?.optionalDependencies || {}),\n\t])\n\tconst externals = new Set([\n\t\t...Object.keys(imports || {}),\n\t\t...(build.external || []),\n\t\t...Object.keys(nodePackage?.dependencies || {}),\n\t]);\n\t\n\t\tconst external = createExternal(dependencies, externals, true);\n\n\n\tif (build.dts && exports && typeof exports === 'object') {\n\t\t/** @type {Record<string, string>} */\n\t\tconst dts = {};\n\t\tfor (const v of Object.values(exports)) {\n\t\t\tconst mainPath = Array.isArray(v) ? v[0] : v;\n\t\t\tconst path = Array.isArray(v) ? v[1] : v;\n\t\t\tif (!path || typeof path !== 'string') { continue; }\n\t\t\tconst name = regex.exec(mainPath)?.groups?.name;\n\t\t\tif (!name) { continue; }\n\t\t\tdts[name] = pathFn.resolve(inputRoot, path);\n\t\t}\n\t\tif (Object.keys(dts).length) {\n\t\t\tawait buildDts(dts, root, outdir, { external, tsc: true });\n\t\t}\n\t}\n\n\t/** @type {BackPoints['bin']} */\n\tlet binPoints = null\n\tif (bin && typeof bin === 'string') {\n\t\tconst name = regex.exec(bin)?.groups?.name;\n\t\tif (name) { inputs.push([name, bin]); }\n\t\tbinPoints = './' + pathFn.join('./', name ? `${name}.mjs` : bin);\n\t} else if (bin && typeof bin === 'object') {\n\t\t/** @type {[string, string][]} */\n\t\tconst list = Object.entries(bin).map(([k, path]) => {\n\t\t\tconst name = regex.exec(path)?.groups?.name;\n\t\t\tif (name) { inputs.push([name, path]); }\n\t\t\treturn [k, './' + pathFn.join('./', name ? `${name}.mjs` : path)];\n\t\t});\n\t\tif (list.length) {\n\t\t\tbinPoints = Object.fromEntries(list);\n\t\t}\n\t}\n\n\t/** @type {[string, string][]} */\n\tconst importPoints = imports && typeof imports === 'object' && Object.entries(imports).map(([k, path]) => {\n\t\tconst name = regex.exec(path)?.groups?.name;\n\t\tif (name) { inputs.push([name, path]); }\n\t\treturn [k[0] === '#' ? k : `#${k}`, './' + pathFn.join('./', name ? `${name}.mjs` : path)];\n\t}) || [];\n\n\t/** @type {[string, string][]} */\n\tconst exportPoints = exports && typeof exports === 'object' && Object.entries(exports).map(([k, v]) => {\n\t\tconst path = Array.isArray(v) ? v[0] : v;\n\t\tconst name = typeof path === 'string' && regex.exec(path)?.groups?.name;\n\t\tif (name) { inputs.push([name, path]); }\n\t\treturn [k, './' + pathFn.join('./', name ? `${name}.mjs` : path)];\n\t}) || [];\n\tif (!inputs.length) { return; }\n\n\tconst input = Object.fromEntries(inputs.map(([k, v]) => [k, pathFn.resolve(inputRoot, v)]));\n\n\tconst mainBundle = await rolldown({ input, external });\n\tawait mainBundle.write({\n\t\tdir: outdir,\n\t\tformat: 'esm',\n\t\tsourcemap: true,\n\t\tentryFileNames: '[name].mjs',\n\t\tchunkFileNames: '[name]-[hash].mjs',\n\t});\n\treturn {\n\t\tbin: binPoints,\n\t\texports: exportPoints.length ? Object.fromEntries(exportPoints) : null,\n\t\timports: importPoints.length ? Object.fromEntries(importPoints) : null,\n\t};\n}\n","import * as pathFn from 'node:path/posix';\nimport { assetsDir, distRoot, build, assetsBuild, nodePackage, root } from './config.mjs';\nimport * as fsPromises from 'node:fs/promises';\n/**\n *\n * @param {Record<string, any>} obj\n * @param {string} key\n * @returns\n */\nfunction getObjectProp(obj, key) {\n\tconst prop = key in obj && obj[key];\n\treturn prop && typeof prop === 'object' && prop || {};\n}\n\n/**\n * \n * @param {string} path\n * @param {any} cfg\n * @param {string | number} [space]\n * @returns {Promise<void>}\n */\nasync function writeCfg(path, cfg, space) {\n\tconst text = JSON.stringify(cfg, null, space);\n\tawait fsPromises.writeFile(path, text);\n}\n\n/**\n * \n * @param {*} nodePackage \n * @param {string} name \n */\nasync function updateVersion(nodePackage, name) {\n\tif (!Object.hasOwn(nodePackage, name)) { return; }\n\tconst dependencies = nodePackage[name];\n\tif (!dependencies || typeof dependencies !== 'object') { return; }\n\tif (!Object.keys(dependencies).length) { return; }\n\tfor (const [name, version] of Object.entries(dependencies)) {\n\t\tif (typeof version !== 'string' || !version) { continue; }\n\t\tlet path = '';\n\t\tif (version.startsWith('workspace:')) {\n\t\t\tconst workspace = version.slice('workspace:'.length);\n\t\t\tif (['/', '.'].includes(workspace[0])) {\n\t\t\t\tpath = workspace;\n\t\t\t} else {\n\t\t\t\tdependencies[name] = workspace;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t} else if (version.startsWith('file:')) {\n\t\t\tpath = version.slice('file:'.length);\n\t\t} else if (version.startsWith('link:')) {\n\t\t\tpath = version.slice('link:'.length);\n\t\t}\n\n\t\tif (!path) { continue; }\n\t\tconst packagePath = pathFn.resolve(root, path, 'package.json');\n\t\ttry {\n\t\t\tconst json = await fsPromises.readFile(packagePath, 'utf-8');\n\t\t\tconst version = JSON.parse(json)?.version;\n\t\t\tif (version && typeof version === 'string') {\n\t\t\t\tdependencies[name] = `^${version}`;\n\t\t\t}\n\t\t} catch { }\n\t}\n\tnodePackage[name] = dependencies;\n}\n\n/** @import { BackPoints } from './buildBack.mjs' */\n/**\n * \n * @param {BackPoints} [backPoints] \n * @param {Record<string, Record<string, string>>} [points] \n */\nexport default async function buildPackage({imports, bin, exports} = {}, points = {}) {\n\tconst pkg = structuredClone(nodePackage);\n\t/** @type {Record<string, string>} */\n\tconst assetExports = {};\n\tfor (const [k, v] of Object.entries(assetsBuild?.exports || {})) {\n\t\tif (Object.hasOwn(points, v) && points[v].mjs) {\n\t\t\tassetExports[k] = './' + pathFn.join(assetsDir, points[v].mjs);\n\t\t\tcontinue;\n\t\t}\n\t\tconst index = v.lastIndexOf('.');\n\t\tif (index <= 0) { continue; }\n\t\tconst name = v.slice(0, index);\n\t\tconst ext = v.slice(index + 1);\n\t\tconst value = points[name]?.[ext];\n\t\tif (!value) { continue; }\n\t\tassetExports[k] = './' + pathFn.join(assetsDir, value);\n\t}\n\tif (exports || Object.keys(assetExports).length) {\n\t\tpkg.exports = {...getObjectProp(pkg, 'exports'), ...assetExports, ...exports};\n\t}\n\tconst main = exports && Object.hasOwn(exports, '.') && exports['.']\n\t\t|| Object.hasOwn(assetExports, '.') && assetExports['.'];\n\tif (main) {\n\t\tpkg.main = main;\n\t\tpkg.type = 'module';\n\t\tdelete pkg.types;\n\t}\n\tif (imports) {\n\t\tpkg.imports = {...getObjectProp(pkg, 'imports'), ...imports}\n\t}\n\tif (typeof bin === 'string') {\n\t\tpkg.bin = bin;\n\t} else if (bin) {\n\t\tpkg.bin = {...getObjectProp(pkg, 'bin'), ...bin};\n\t}\n\tawait updateVersion(pkg, 'dependencies');\n\tawait updateVersion(pkg, 'devDependencies');\n\tawait updateVersion(pkg, 'peerDependencies');\n\tawait updateVersion(pkg, 'optionalDependencies');\n\tawait updateVersion(pkg, 'bundledDependencies');\n\tdelete pkg.private;\n\tawait writeCfg(pathFn.join(distRoot, 'package.json'), pkg, 2);\n}\n","import * as pathFn from 'node:path';\nimport * as fsPromises from 'node:fs/promises';\nimport { assetsBuild, assetsDir, importmap, nodeModules, distRoot } from './config.mjs';\n\n/**\n * \n * @param {Record<string, Record<string, string>>} [points] \n * @param {string[]} [polyfill] \n */\nexport default async function buildAssetsMjs(points, polyfill) {\n\t/** @type {string[]} */\n\tconst scripts = [];\n\t/** @type {Record<string, string>} */\n\tconst files = {};\n\t/** @type {Record<string, string>} */\n\tconst mjs = {};\n\t/** @type {Record<string, string>} */\n\tconst css = {};\n\tfor (const [point, values] of Object.entries(points || {})) {\n\t\tfor (const [type, value] of Object.entries(values)) {\n\t\t\tif (type === 'mjs') continue;\n\t\t\tfiles[`${point}.${type}`] = value;\n\t\t}\n\t\tif ('mjs' in values) { mjs[point] = values.mjs; }\n\t\tif ('css' in values) { css[point] = values.css; }\n\t}\n\tif (Object.keys(files).length) {\n\t\tscripts.push(`export const files = ${JSON.stringify(files)};\\n`);\n\t}\n\n\tconst alias = assetsBuild?.alias;\n\tif (alias && Object.keys(alias).length) {\n\t\tscripts.push(`export const alias = ${JSON.stringify(alias)};\\n`);\n\t}\n\tif (Object.keys(mjs).length) {\n\t\tscripts.push(`export const esm = ${JSON.stringify(mjs)};\\n`);\n\t}\n\tif (importmap) {\n\t\tscripts.push(`export const importmap = ${JSON.stringify(importmap)};\\n`);\n\t}\n\tconst hooks = assetsBuild?.hooks;\n\tconst styles = assetsBuild?.styles?.map(v => Object.hasOwn(css, v) ? css[v] : '').filter(Boolean);\n\tif (styles?.length) {\n\t\tscripts.push(`export const styles = ${JSON.stringify(styles)};\\n`);\n\t}\n\tif (typeof hooks === 'string') {\n\t\tscripts.push(`export const hooks = ${JSON.stringify(hooks)};\\n`);\n\t}\n\tif (nodeModules) {\n\t\tscripts.push(`export const nodeModules = ${JSON.stringify(nodeModules)};\\n`);\n\t}\n\n\tif (polyfill?.length) {\n\t\tscripts.push(`export const polyfill = ${JSON.stringify(polyfill)};\\n`);\n\t}\n\tif (!scripts.length) { return; }\n\tif (assetsDir && assetsDir !== '.') {\n\t\tscripts.push(`export const dir = ${JSON.stringify(assetsDir)};\\n`);\n\t}\n\n\n\tawait fsPromises.writeFile(pathFn.join(distRoot, 'assets.yongdall.mjs'), scripts.join(''));\n}\n","import * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport { rolldown } from 'rolldown';\nimport commonjs from '@rollup/plugin-commonjs';\nimport { assetsDir, distRoot, root, assetsBuild } from './config.mjs';\n\n\nexport default async function buildPolyfill() {\n\tif (!assetsBuild) { return; }\n\tconst assetRoot = pathFn.join(root, assetsBuild.dir || '');\n\tconst outdir = pathPosix.join(distRoot, assetsDir);\n\tconst list = assetsBuild.polyfill?.map(v => pathFn.join(assetRoot, v)).filter(Boolean) || [];\n\tif (!list.length) { return; }\n\n\n\tconst input = list;\n\tconst mainBundle = await rolldown({\n\t\tinput,\n\t\tplugins: [commonjs()],\n\t});\n\tconst result = await mainBundle.write({\n\t\tdir: outdir,\n\t\tformat: 'iife',\n\t\tsourcemap: assetsBuild.sourcemap !== false,\n\t\tentryFileNames: '[name].js',\n\t\tminify: true,\n\t\tname: `polyfill_${Date.now()}_${`${Math.random()}`.slice(2)}`\n\t});\n\n\n\t/** @type {string[]} */\n\tconst polyfill = [];\n\tfor (const { fileName } of result.output) {\n\t\tconst ext = pathPosix.extname(fileName);\n\t\tif (ext === '.map') { continue; }\n\t\tpolyfill.push(fileName);\n\t}\n\treturn polyfill;\n}\n","#!/usr/bin/env node\nimport * as pathFn from 'node:path';\nimport buildAssets from './buildAssets.mjs';\nimport { assetsRoot, copyFiles, distRoot, root } from './config.mjs';\nimport copy from './copy.mjs';\nimport buildBack from './buildBack.mjs';\nimport buildPackage from './buildPackage.mjs';\nimport buildAssetsMjs from './buildAssetsMjs.mjs';\nimport buildPolyfill from './buildPolyfill.mjs';\nfor (const g of copyFiles) {\n\tif (typeof g === 'string') {\n\t\tawait copy(pathFn.join(root, g), pathFn.join(distRoot, g));\n\t\tcontinue;\n\t}\n\tconst { files, from, to, assets } = g;\n\tfor (const file of [files].flat()) {\n\t\tawait copy(\n\t\t\tpathFn.join(root, from || '', file),\n\t\t\tpathFn.join(assets ? assetsRoot : distRoot, to || '', file),\n\t\t);\n\t}\n}\nconst points = await buildAssets();\nconst polyfill = await buildPolyfill();\nconst backPoints = await buildBack();\nawait buildAssetsMjs(points, polyfill);\nawait buildPackage(backPoints, points);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["pathFn"],"sources":["../../cli/build/config.mjs","../../cli/build/buildDts.mjs","../../cli/build/createExternal.mjs","../../cli/build/buildAssets.mjs","../../cli/build/copy.mjs","../../cli/build/buildBack.mjs","../../cli/build/buildPackage.mjs","../../cli/build/buildAssetsMjs.mjs","../../cli/build/buildPolyfill.mjs","../../cli/build/index.mjs"],"sourcesContent":["\nimport * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport loadConfiguration from '@yongdall/load-configuration';\n\nexport const root = process.env.BUILD_PLUGIN_ROOT || process.env.npm_config_local_prefix || '';\n\n/**\n * @typedef {object} AssetsBuild\n * @prop {string} [dir]\n * @prop {string} [dts]\n * @prop {Record<string, string | [string, string?]>} [inputs]\n * @prop {Record<string, string>} [exports]\n * @prop {Record<string, string>} [imports]\n * @prop {Record<string, string>} [alias]\n * @prop {string} [hooks]\n * @prop {string[]} [styles]\n * @prop {string[]} [external]\n * @prop {any[]} [plugins]\n * @prop {string[]} [polyfill]\n * @prop {boolean} [sourcemap]\n */\n/**\n * @typedef {object} Build\n * @prop {string} [dir] \n * @prop {string} [target] \n * @prop {string} [dts]\n * @prop {string[]} [inputs] 入口文件\n * @prop {Record<string, string | [string, string?]>} [exports] 导出文件\n * @prop {Record<string, string>} [imports] 内部别名\n * @prop {Record<string, string> | string} [bin] 二进制文件\n * @prop {string[]} [external]\n */\n/**\n * @typedef {object} NodeModule\n * @prop {string} [dir]\n * @prop {Record<string, string>} [esm]\n * @prop {Record<string, Record<string, string>>} [importmap]\n */\n/**\n * @typedef {object} Copy\n * @prop {string} [from]\n * @prop {string} [to]\n * @prop {string | string[]} files\n * @prop {boolean} [assets]\n */\n/**\n * @typedef {object} Config\n * @prop {string} [package]\n * @prop {string} [dist]\n * @prop {AssetsBuild} [assetsBuild]\n * @prop {Record<string, Record<string, string>>} [importmap]\n * @prop {Record<string, NodeModule>} [nodeModules]\n * @prop {(string | Copy[])} [copy]\n * @prop {Build} [build]\n * @prop {string} [assetsDir]\n * @prop {boolean} [noPackage]\n */\n/** @type {Config?} */\nconst config = await loadConfiguration(pathFn.resolve(root, 'build.yongdall'));\nif (!config) {\n\tconsole.error('读取定义配置文件失败');\n\tprocess.exit();\n}\n\nexport const packagePath = pathFn.join(root, config.package || 'package.json');\nexport const assetsBuild = config.assetsBuild;\nexport const build = config.build;\nexport const copyFiles = config.copy || [];\nexport const importmap = config.importmap;\nexport const nodeModules = config.nodeModules;\n\n/** @type {Record<string, any>} */\nexport const nodePackage = await loadConfiguration(packagePath).then(v => v || {}, () => ({}));\n\n\nconst distDir = (config.dist || 'dist').replace(/\\{%([^%]*)%\\}/g, (_, name) => {\n\tswitch (name) {\n\t\tcase 'name': {\n\t\t\tconst name = nodePackage.name;\n\t\t\tif (name && typeof name === 'string') { return name; }\n\t\t}\n\t\tcase 'dir': return pathFn.basename(pathFn.resolve(root));\n\t}\n\treturn _;\n});\nexport const distRoot = pathPosix.join(root, distDir === '.' ? '' : distDir);\n\nexport const assetsDir = config.assetsDir || 'assets';\nexport const assetsRoot = pathFn.resolve(root, assetsDir);\nexport const noPackage = Boolean(config.noPackage);\n","import * as pathFn from 'node:path';\nimport * as fsPromises from 'node:fs/promises';\nimport * as os from 'node:os';\nimport { rolldown } from 'rolldown';\nimport { dts } from 'rolldown-plugin-dts';\nimport * as ts from 'typescript';\n\n\nconst extNames = ['.d.ts', '.d.mts', '.ts', '.mts', '.js', '.mjs'];\n/**\n * \n * @param {string} assetRoot \n */\nasync function findFiles(assetRoot) {\n\tconst files = new Set();\n\tconst list2 = [];\n\tfor await (const f of fsPromises.glob('**/*.{mjs,js,mts,ts}', {\n\t\tcwd: assetRoot, exclude: ['node_modules/**']\n\t})) {\n\t\tif (f.startsWith('node_modules/') || f.includes('/node_modules/')) { continue; }\n\t\tfor (const e of extNames) {\n\t\t\tif (!f.endsWith(e)) { continue; }\n\t\t\tif (e.includes('.d.')) {\n\t\t\t\tlist2.push(f.slice(0, f.length - e.length) + e.slice(2));\n\t\t\t\tlist2.push(f.slice(0, f.length - e.length) + e.slice(2).replace('t', 'j') || '');\n\t\t\t} else {\n\t\t\t\tfiles.add(f);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const f of list2) {\n\t\tfiles.delete(f);\n\t}\n\tif (!files.size) { return null; }\n\treturn files;\n\n}\n\n/**\n * 使用 TypeScript Compiler API 编译指定文件,仅生成 .d.ts 声明文件\n * @param {string[]} files - 要编译的文件路径列表(相对于 root)\n * @param {string} root - 工作目录(cwd)\n */\nasync function compileDeclarations(files, root) {\n\t// 创建编译程序\n\tconst program = ts.createProgram(files.map(f => pathFn.resolve(root, f)), {\n\t\tstrict: true,\n\t\tallowJs: true,\n\t\tmoduleResolution: ts.ModuleResolutionKind.Bundler,\n\t\tdeclaration: true,\n\t\temitDeclarationOnly: true,\n\t\tmodule: ts.ModuleKind.ESNext,\n\t\ttarget: ts.ScriptTarget.ESNext,\n\t\toutDir: root,\n\t\trootDir: root,\n\n\t\t// 你额外要求的关键选项(CLI 不支持,但 API 支持!)\n\t\tverbatimModuleSyntax: true,\n\t\tallowSyntheticDefaultImports: false,\n\t\tcustomConditions: ['types', 'typings', 'module', 'node'],\n\n\t\t// 可选:提升兼容性\n\t\tskipLibCheck: true,\n\t\tesModuleInterop: false,\n\t});\n\n\tconst emitResult = program.emit();\n\n\t// 获取所有诊断信息(包括语法错误、类型错误等)\n\tconst diagnostics = ts\n\t\t.getPreEmitDiagnostics(program)\n\t\t.concat(emitResult.diagnostics);\n\n\tconst errors = diagnostics.filter(v => v.category === ts.DiagnosticCategory.Error);\n\tif (errors.length > 0) {\n\t\tconst message = ts.formatDiagnosticsWithColorAndContext(errors, {\n\t\t\tgetCurrentDirectory: () => root,\n\t\t\tgetCanonicalFileName: fileName => fileName,\n\t\t\tgetNewLine: () => os.EOL,\n\t\t});\n\t\tconsole.error(message); // 相当于 stderr 输出\n\t\tthrow new Error(`TS 编译错误: ${message}`);\n\t}\n\n}\n\n/**\n * \n * @param {Record<string, string>} input \n * @param {string} root \n * @param {string} outdir \n * @param {object} [options]\n * @param {string[] | ((is: string) => boolean)} [options.external] \n * @param {boolean} [options.tsc] \n * @returns \n */\nexport default async function buildDts(input, root, outdir, {\n\texternal, tsc\n} = {}) {\n\n\n\n\tconst files = (Object.values(input).find(v => v.endsWith('.js') || v.endsWith('.mjs')) || tsc) && await findFiles(root);\n\tif (files) {\n\t\tawait compileDeclarations([...files], root);\n\t}\n\n\n\t// === 第二步:DTS 构建 — 生成 .d.mts ===\n\tconst dtsBundle = await rolldown({\n\t\tinput,\n\t\texternal,\n\t\tplugins: [\n\t\t\tdts({\n\t\t\t\temitDtsOnly: true,\n\t\t\t\tcompilerOptions: {\n\t\t\t\t\tallowJs: true,\n\t\t\t\t\tmoduleResolution: 'Bundler',\n\t\t\t\t\tdeclaration: true,\n\t\t\t\t\tmodule: 'ESNext',\n\t\t\t\t\ttarget: 'ESNext',\n\t\t\t\t\temitDeclarationOnly: true,\n\t\t\t\t\tverbatimModuleSyntax: true,\n\t\t\t\t\tstrict: true,\n\t\t\t\t\tallowSyntheticDefaultImports: false,\n\t\t\t\t\tcustomConditions: ['types', 'typings', 'module', 'node'],\n\t\t\t\t\tskipLibCheck: true,\n\n\t\t\t\t},\n\t\t\t}),\n\t\t],\n\t});\n\n\tconst { output } = await dtsBundle.generate({\n\t\tdir: outdir,\n\t\tformat: 'esm',\n\t\tsourcemap: false,\n\t\tentryFileNames: '[name].mjs',\n\t\tchunkFileNames: '[name]-[hash].mjs',\n\t});\n\n\tfor (const chunkOrAsset of output) {\n\t\tif (!chunkOrAsset.fileName.endsWith('.d.mts')) { continue; }\n\t\tconst filePath = pathFn.resolve(outdir, chunkOrAsset.fileName);\n\t\tawait fsPromises.mkdir(pathFn.dirname(filePath), { recursive: true });\n\n\t\t// @ts-ignore\n\t\tconst content = chunkOrAsset.code ?? chunkOrAsset.source;\n\t\tawait fsPromises.writeFile(filePath, content || '');\n\t}\n\n\tif (files) {\n\t\tawait Promise.allSettled(\n\t\t\t[...files].map(v => v.replace(/\\.(m?)[jt]s$/, '.d.$1ts'))\n\t\t\t\t.map(path => fsPromises.unlink(pathFn.resolve(root, path)))\n\t\t);\n\t}\n\n\n}\n","/**\n * \n * @param {Set<string>} dependencies \n * @param {Set<string>} externals \n * @param {boolean} [node] \n * @returns {(id: string) => boolean}\n */\nexport default function createExternal(dependencies, externals, node) {\n\treturn id => {\n\t\tif (node && id.startsWith('node:')) { return true; }\n\t\tif (externals.has(id)) { return true; }\n\t\tif (dependencies.has(id)) { return true; }\n\t\tlet index = id.indexOf('/');\n\t\tif (index > 0 && id[0] === '@') {\n\t\t\tindex = id.indexOf('/', index + 1);\n\t\t}\n\t\tconst name = id.slice(0, index);\n\t\tif (!name) { return false; }\n\t\treturn dependencies.has(name);\n\t};\n}\n","import * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport { rolldown } from 'rolldown';\nimport { assetsDir, distRoot, root, assetsBuild, nodePackage } from './config.mjs';\nimport buildDts from './buildDts.mjs';\nimport createExternal from './createExternal.mjs';\n\nconst toNameRegex = /\\.[^.]+$/;\n\n\nexport default async function buildAssets() {\n\tif (!assetsBuild) return;\n\tconst list = Object.entries(assetsBuild.inputs || {});\n\tif (!list.length) return;\n\n\tconst outdir = pathPosix.join(distRoot, assetsDir);\n\tconst assetRoot = pathFn.join(root, assetsBuild.dir || '');\n\n\n\n\tconst dependencies = new Set([\n\t\t...nodePackage.name ? [nodePackage.name] : [],\n\t\t...Object.keys(nodePackage?.devDependencies || {}),\n\t\t...Object.keys(nodePackage?.peerDependencies || {}),\n\t\t...Object.keys(nodePackage?.optionalDependencies || {}),\n\t]);\n\tconst externals = new Set([\n\t\t...Object.keys(assetsBuild.imports || {}),\n\t\t...(assetsBuild.external || []),\n\t]);\n\t/** @type {(id: string) => boolean} */\n\tconst external = createExternal(dependencies, externals);\n\tif (assetsBuild.dts) {\n\n\t\tlet dtsInputs = list.map(([name, relPath]) => [name, pathFn.join(assetRoot, Array.isArray(relPath) ? relPath[1] || '' : relPath)]);\n\t\tdtsInputs = dtsInputs.filter(v => v[1]);\n\n\t\tif (dtsInputs.length) {\n\t\t\tawait buildDts(Object.fromEntries(dtsInputs), assetRoot, outdir, {\n\t\t\t\ttsc: true, external,\n\t\t\t});\n\t\t}\n\t}\n\tconst input = Object.fromEntries(\n\t\tlist.map(([name, relPath]) => [name, pathFn.join(assetRoot, Array.isArray(relPath) ? relPath[0] : relPath)])\n\t);\n\n\n\tconst bundle = await rolldown({\n\t\tinput,\n\t\texternal,\n\t\tplugins: assetsBuild.plugins || [],\n\t});\n\n\tconst result = await bundle.write({\n\t\tdir: outdir,\n\t\tformat: 'esm',\n\t\tsourcemap: assetsBuild.sourcemap !== false,\n\t\tentryFileNames: '[name].mjs',\n\t\tchunkFileNames: '[name]-[hash].mjs',\n\t\tminify: true,\n\t});\n\n\n\t/** @type {Record<string, Record<string, string>>} */\n\tconst points = {};\n\tfor (const { fileName } of result.output) {\n\t\tconst ext = pathPosix.extname(fileName);\n\t\tif (ext === '.map') { continue; }\n\t\tconst point = fileName.replace(toNameRegex, '');\n\t\tif (!Object.hasOwn(points, point)) {\n\t\t\tpoints[point] = {};\n\t\t}\n\t\tpoints[point][ext.slice(1)] = fileName;\n\t}\n\treturn points;\n\n}\n","import * as pathFn from 'node:path';\nimport * as fsPromises from 'node:fs/promises';\n\n/**\n * \n * @param {string} fPath \n * @param {string} tPath \n */\nexport default async function copy(fPath, tPath) {\n\tconst fStat = await fsPromises.lstat(fPath).catch(() => null);\n\tif (!fStat) { return; }\n\tif (fStat.isSymbolicLink() || fStat.isFile()) {\n\t\tconst tStat = await fsPromises.lstat(tPath).catch(() => null);\n\t\tif (tStat?.isDirectory()) {\n\t\t\tawait fsPromises.rmdir(tPath);\n\t\t} else if (tStat) {\n\t\t\tawait fsPromises.unlink(tPath);\n\t\t}\n\t\tawait fsPromises.mkdir(pathFn.dirname(tPath), { recursive: true });\n\t\tfsPromises.copyFile(fPath, tPath);\n\t}\n\tif (!fStat.isDirectory()) { return; }\n\tconst tStat = await fsPromises.lstat(tPath).catch(() => null);\n\tif (!tStat?.isDirectory()) {\n\t\tif (tStat) {\n\t\t\tawait fsPromises.unlink(tPath);\n\t\t}\n\t\tawait fsPromises.mkdir(tPath, { recursive: true });\n\t}\n\tfor (const file of await fsPromises.readdir(fPath)) {\n\t\tawait copy(pathFn.join(fPath, file), pathFn.join(tPath, file));\n\t}\n}\n\n/**\n * \n * @param {string} fPath \n * @param {string} tPath \n */\nexport async function copyDir(fPath, tPath) {\n\tconst fStat = await fsPromises.lstat(fPath).catch(() => null);\n\tif (!fStat?.isDirectory()) { return; }\n\tconst tStat = await fsPromises.lstat(tPath).catch(() => null);\n\tif (!tStat?.isDirectory()) {\n\t\tif (tStat) {\n\t\t\tawait fsPromises.unlink(tPath);\n\t\t}\n\t\tawait fsPromises.mkdir(tPath, { recursive: true });\n\t}\n\tfor (const file of await fsPromises.readdir(fPath)) {\n\t\tawait copy(pathFn.join(fPath, file), pathFn.join(tPath, file));\n\t}\n}\n","import * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport { rolldown } from 'rolldown';\nimport { distRoot, root, build, nodePackage } from './config.mjs';\nimport buildDts from './buildDts.mjs';\nimport createExternal from './createExternal.mjs';\n/**\n * @typedef {Object} BackPoints\n * @property {string | Record<string, string> | null} [bin] - 可执行脚本的路径,可以是字符串(单个入口)或对象(多个命名入口)。\n * @property {Record<string, string>?} [exports] - 模块导出映射,键为导出名称,值可以是模块路径字符串,或包含主入口和可选子路径的元组。\n * @property {Record<string, string>?} [imports] - 模块导入别名映射,用于在代码中通过别名引用模块。\n */\n\nconst regex = /^(?<name>.+)\\.(mjs|mts|js|ts)$/;\n/**\n * \n * @returns {Promise<BackPoints | undefined>}\n */\nexport default async function buildBack() {\n\tif (!build) { return; }\n\tconst inputRoot = pathFn.join(root, build.dir || '');\n\tconst outdir = pathPosix.join(distRoot, build.target || '.');\n\t/** @type {[string, string][] | undefined} */\n\tlet inputs = build.inputs?.map(path => {\n\t\tconst name = regex.exec(path)?.groups?.name;\n\t\tif (!name) { return ['', '']; }\n\t\treturn [name, path];\n\t}) || [];\n\tinputs = inputs.filter(v => v[0]);\n\tconst { bin, imports, exports } = build;\n\tconst dependencies = new Set([\n\t\t...nodePackage.name ? [nodePackage.name] : [],\n\t\t...Object.keys(nodePackage?.dependencies || {}),\n\t\t...Object.keys(nodePackage?.devDependencies || {}),\n\t\t...Object.keys(nodePackage?.peerDependencies || {}),\n\t\t...Object.keys(nodePackage?.optionalDependencies || {}),\n\t])\n\tconst externals = new Set([\n\t\t...Object.keys(imports || {}),\n\t\t...(build.external || []),\n\t\t...Object.keys(nodePackage?.dependencies || {}),\n\t]);\n\t\n\t\tconst external = createExternal(dependencies, externals, true);\n\n\n\tif (build.dts && exports && typeof exports === 'object') {\n\t\t/** @type {Record<string, string>} */\n\t\tconst dts = {};\n\t\tfor (const v of Object.values(exports)) {\n\t\t\tconst mainPath = Array.isArray(v) ? v[0] : v;\n\t\t\tconst path = Array.isArray(v) ? v[1] : v;\n\t\t\tif (!path || typeof path !== 'string') { continue; }\n\t\t\tconst name = regex.exec(mainPath)?.groups?.name;\n\t\t\tif (!name) { continue; }\n\t\t\tdts[name] = pathFn.resolve(inputRoot, path);\n\t\t}\n\t\tif (Object.keys(dts).length) {\n\t\t\tawait buildDts(dts, root, outdir, { external, tsc: true });\n\t\t}\n\t}\n\n\t/** @type {BackPoints['bin']} */\n\tlet binPoints = null\n\tif (bin && typeof bin === 'string') {\n\t\tconst name = regex.exec(bin)?.groups?.name;\n\t\tif (name) { inputs.push([name, bin]); }\n\t\tbinPoints = './' + pathFn.join('./', name ? `${name}.mjs` : bin);\n\t} else if (bin && typeof bin === 'object') {\n\t\t/** @type {[string, string][]} */\n\t\tconst list = Object.entries(bin).map(([k, path]) => {\n\t\t\tconst name = regex.exec(path)?.groups?.name;\n\t\t\tif (name) { inputs.push([name, path]); }\n\t\t\treturn [k, './' + pathFn.join('./', name ? `${name}.mjs` : path)];\n\t\t});\n\t\tif (list.length) {\n\t\t\tbinPoints = Object.fromEntries(list);\n\t\t}\n\t}\n\n\t/** @type {[string, string][]} */\n\tconst importPoints = imports && typeof imports === 'object' && Object.entries(imports).map(([k, path]) => {\n\t\tconst name = regex.exec(path)?.groups?.name;\n\t\tif (name) { inputs.push([name, path]); }\n\t\treturn [k[0] === '#' ? k : `#${k}`, './' + pathFn.join('./', name ? `${name}.mjs` : path)];\n\t}) || [];\n\n\t/** @type {[string, string][]} */\n\tconst exportPoints = exports && typeof exports === 'object' && Object.entries(exports).map(([k, v]) => {\n\t\tconst path = Array.isArray(v) ? v[0] : v;\n\t\tconst name = typeof path === 'string' && regex.exec(path)?.groups?.name;\n\t\tif (name) { inputs.push([name, path]); }\n\t\treturn [k, './' + pathFn.join('./', name ? `${name}.mjs` : path)];\n\t}) || [];\n\tif (!inputs.length) { return; }\n\n\tconst input = Object.fromEntries(inputs.map(([k, v]) => [k, pathFn.resolve(inputRoot, v)]));\n\n\tconst mainBundle = await rolldown({ input, external });\n\tawait mainBundle.write({\n\t\tdir: outdir,\n\t\tformat: 'esm',\n\t\tsourcemap: true,\n\t\tentryFileNames: '[name].mjs',\n\t\tchunkFileNames: '[name]-[hash].mjs',\n\t});\n\treturn {\n\t\tbin: binPoints,\n\t\texports: exportPoints.length ? Object.fromEntries(exportPoints) : null,\n\t\timports: importPoints.length ? Object.fromEntries(importPoints) : null,\n\t};\n}\n","import * as pathFn from 'node:path/posix';\nimport { assetsDir, distRoot, build, assetsBuild, nodePackage, root } from './config.mjs';\nimport * as fsPromises from 'node:fs/promises';\n/**\n *\n * @param {Record<string, any>} obj\n * @param {string} key\n * @returns\n */\nfunction getObjectProp(obj, key) {\n\tconst prop = key in obj && obj[key];\n\treturn prop && typeof prop === 'object' && prop || {};\n}\n\n/**\n * \n * @param {string} path\n * @param {any} cfg\n * @param {string | number} [space]\n * @returns {Promise<void>}\n */\nasync function writeCfg(path, cfg, space) {\n\tconst text = JSON.stringify(cfg, null, space);\n\tawait fsPromises.writeFile(path, text);\n}\n\n/**\n * \n * @param {*} nodePackage \n * @param {string} name \n */\nasync function updateVersion(nodePackage, name) {\n\tif (!Object.hasOwn(nodePackage, name)) { return; }\n\tconst dependencies = nodePackage[name];\n\tif (!dependencies || typeof dependencies !== 'object') { return; }\n\tif (!Object.keys(dependencies).length) { return; }\n\tfor (const [name, version] of Object.entries(dependencies)) {\n\t\tif (typeof version !== 'string' || !version) { continue; }\n\t\tlet path = '';\n\t\tif (version.startsWith('workspace:')) {\n\t\t\tconst workspace = version.slice('workspace:'.length);\n\t\t\tif (['/', '.'].includes(workspace[0])) {\n\t\t\t\tpath = workspace;\n\t\t\t} else {\n\t\t\t\tdependencies[name] = workspace;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t} else if (version.startsWith('file:')) {\n\t\t\tpath = version.slice('file:'.length);\n\t\t} else if (version.startsWith('link:')) {\n\t\t\tpath = version.slice('link:'.length);\n\t\t}\n\n\t\tif (!path) { continue; }\n\t\tconst packagePath = pathFn.resolve(root, path, 'package.json');\n\t\ttry {\n\t\t\tconst json = await fsPromises.readFile(packagePath, 'utf-8');\n\t\t\tconst version = JSON.parse(json)?.version;\n\t\t\tif (version && typeof version === 'string') {\n\t\t\t\tdependencies[name] = `^${version}`;\n\t\t\t}\n\t\t} catch { }\n\t}\n\tnodePackage[name] = dependencies;\n}\n\n/** @import { BackPoints } from './buildBack.mjs' */\n/**\n * \n * @param {BackPoints} [backPoints] \n * @param {Record<string, Record<string, string>>} [points] \n */\nexport default async function buildPackage({imports, bin, exports} = {}, points = {}) {\n\tconst pkg = structuredClone(nodePackage);\n\t/** @type {Record<string, string>} */\n\tconst assetExports = {};\n\tfor (const [k, v] of Object.entries(assetsBuild?.exports || {})) {\n\t\tif (Object.hasOwn(points, v) && points[v].mjs) {\n\t\t\tassetExports[k] = './' + pathFn.join(assetsDir, points[v].mjs);\n\t\t\tcontinue;\n\t\t}\n\t\tconst index = v.lastIndexOf('.');\n\t\tif (index <= 0) { continue; }\n\t\tconst name = v.slice(0, index);\n\t\tconst ext = v.slice(index + 1);\n\t\tconst value = points[name]?.[ext];\n\t\tif (!value) { continue; }\n\t\tassetExports[k] = './' + pathFn.join(assetsDir, value);\n\t}\n\tif (exports || Object.keys(assetExports).length) {\n\t\tpkg.exports = {...getObjectProp(pkg, 'exports'), ...assetExports, ...exports};\n\t}\n\tconst main = exports && Object.hasOwn(exports, '.') && exports['.']\n\t\t|| Object.hasOwn(assetExports, '.') && assetExports['.'];\n\tif (main) {\n\t\tpkg.main = main;\n\t\tpkg.type = 'module';\n\t\tdelete pkg.types;\n\t}\n\tif (imports) {\n\t\tpkg.imports = {...getObjectProp(pkg, 'imports'), ...imports}\n\t}\n\tif (typeof bin === 'string') {\n\t\tpkg.bin = bin;\n\t} else if (bin) {\n\t\tpkg.bin = {...getObjectProp(pkg, 'bin'), ...bin};\n\t}\n\tawait updateVersion(pkg, 'dependencies');\n\tawait updateVersion(pkg, 'devDependencies');\n\tawait updateVersion(pkg, 'peerDependencies');\n\tawait updateVersion(pkg, 'optionalDependencies');\n\tawait updateVersion(pkg, 'bundledDependencies');\n\tdelete pkg.private;\n\tawait writeCfg(pathFn.join(distRoot, 'package.json'), pkg, 2);\n}\n","import * as pathFn from 'node:path';\nimport * as fsPromises from 'node:fs/promises';\nimport { assetsBuild, assetsDir, importmap, nodeModules, distRoot } from './config.mjs';\n\n/**\n * \n * @param {Record<string, Record<string, string>>} [points] \n * @param {string[]} [polyfill] \n */\nexport default async function buildAssetsMjs(points, polyfill) {\n\t/** @type {string[]} */\n\tconst scripts = [];\n\t/** @type {Record<string, string>} */\n\tconst files = {};\n\t/** @type {Record<string, string>} */\n\tconst mjs = {};\n\t/** @type {Record<string, string>} */\n\tconst css = {};\n\tfor (const [point, values] of Object.entries(points || {})) {\n\t\tfor (const [type, value] of Object.entries(values)) {\n\t\t\tif (type === 'mjs') continue;\n\t\t\tfiles[`${point}.${type}`] = value;\n\t\t}\n\t\tif ('mjs' in values) { mjs[point] = values.mjs; }\n\t\tif ('css' in values) { css[point] = values.css; }\n\t}\n\tif (Object.keys(files).length) {\n\t\tscripts.push(`export const files = ${JSON.stringify(files)};\\n`);\n\t}\n\n\tconst alias = assetsBuild?.alias;\n\tif (alias && Object.keys(alias).length) {\n\t\tscripts.push(`export const alias = ${JSON.stringify(alias)};\\n`);\n\t}\n\tif (Object.keys(mjs).length) {\n\t\tscripts.push(`export const esm = ${JSON.stringify(mjs)};\\n`);\n\t}\n\tif (importmap) {\n\t\tscripts.push(`export const importmap = ${JSON.stringify(importmap)};\\n`);\n\t}\n\tconst hooks = assetsBuild?.hooks;\n\tconst styles = assetsBuild?.styles?.map(v => Object.hasOwn(css, v) ? css[v] : '').filter(Boolean);\n\tif (styles?.length) {\n\t\tscripts.push(`export const styles = ${JSON.stringify(styles)};\\n`);\n\t}\n\tif (typeof hooks === 'string') {\n\t\tscripts.push(`export const hooks = ${JSON.stringify(hooks)};\\n`);\n\t}\n\tif (nodeModules) {\n\t\tscripts.push(`export const nodeModules = ${JSON.stringify(nodeModules)};\\n`);\n\t}\n\n\tif (polyfill?.length) {\n\t\tscripts.push(`export const polyfill = ${JSON.stringify(polyfill)};\\n`);\n\t}\n\tif (!scripts.length) { return; }\n\tif (assetsDir && assetsDir !== '.') {\n\t\tscripts.push(`export const dir = ${JSON.stringify(assetsDir)};\\n`);\n\t}\n\n\n\tawait fsPromises.writeFile(pathFn.join(distRoot, 'assets.yongdall.mjs'), scripts.join(''));\n}\n","import * as pathFn from 'node:path';\nimport * as pathPosix from 'node:path/posix';\nimport { rolldown } from 'rolldown';\nimport commonjs from '@rollup/plugin-commonjs';\nimport { assetsDir, distRoot, root, assetsBuild } from './config.mjs';\n\n\nexport default async function buildPolyfill() {\n\tif (!assetsBuild) { return; }\n\tconst assetRoot = pathFn.join(root, assetsBuild.dir || '');\n\tconst outdir = pathPosix.join(distRoot, assetsDir);\n\tconst list = assetsBuild.polyfill?.map(v => pathFn.join(assetRoot, v)).filter(Boolean) || [];\n\tif (!list.length) { return; }\n\n\n\tconst input = list;\n\tconst mainBundle = await rolldown({\n\t\tinput,\n\t\tplugins: [commonjs()],\n\t});\n\tconst result = await mainBundle.write({\n\t\tdir: outdir,\n\t\tformat: 'iife',\n\t\tsourcemap: assetsBuild.sourcemap !== false,\n\t\tentryFileNames: '[name].js',\n\t\tminify: true,\n\t\tname: `polyfill_${Date.now()}_${`${Math.random()}`.slice(2)}`\n\t});\n\n\n\t/** @type {string[]} */\n\tconst polyfill = [];\n\tfor (const { fileName } of result.output) {\n\t\tconst ext = pathPosix.extname(fileName);\n\t\tif (ext === '.map') { continue; }\n\t\tpolyfill.push(fileName);\n\t}\n\treturn polyfill;\n}\n","#!/usr/bin/env node\nimport * as pathFn from 'node:path';\nimport buildAssets from './buildAssets.mjs';\nimport { assetsRoot, copyFiles, distRoot, noPackage, root } from './config.mjs';\nimport copy from './copy.mjs';\nimport buildBack from './buildBack.mjs';\nimport buildPackage from './buildPackage.mjs';\nimport buildAssetsMjs from './buildAssetsMjs.mjs';\nimport buildPolyfill from './buildPolyfill.mjs';\nfor (const g of copyFiles) {\n\tif (typeof g === 'string') {\n\t\tawait copy(pathFn.join(root, g), pathFn.join(distRoot, g));\n\t\tcontinue;\n\t}\n\tconst { files, from, to, assets } = g;\n\tfor (const file of [files].flat()) {\n\t\tawait copy(\n\t\t\tpathFn.join(root, from || '', file),\n\t\t\tpathFn.join(assets ? assetsRoot : distRoot, to || '', file),\n\t\t);\n\t}\n}\nconst points = await buildAssets();\nconst polyfill = await buildPolyfill();\nconst backPoints = await buildBack();\nawait buildAssetsMjs(points, polyfill);\nif (!noPackage) {\n\tawait buildPackage(backPoints, points);\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yongdall/build",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"build.yongdall": "./index.mjs"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@rollup/plugin-alias": "^6.0.0",
|
|
14
14
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
15
|
-
"@yongdall/load-configuration": "^0.
|
|
15
|
+
"@yongdall/load-configuration": "^0.3.0",
|
|
16
16
|
"rolldown": "1.0.0-rc.2",
|
|
17
17
|
"rolldown-plugin-dts": "^0.21.8",
|
|
18
18
|
"typescript": "^5.8.3"
|