Loading...
Loading...
Compare original and translation side by side
rsdoctor-data.jsonrsdoctor-data.jsoninstall@rsdoctor/rspack-plugin@rsdoctor/webpack-pluginpackage.jsonconfigrspack.config.jswebpack.config.jsrsbuild.config.tsmodern.config.tsinstall@rsdoctor/rspack-plugin@rsdoctor/webpack-pluginpackage.jsonconfigrspack.config.jswebpack.config.jsrsbuild.config.tsmodern.config.tschunks listchunks by-idchunks largepackages listpackages by-namepackages dependenciespackages duplicatespackages similarmodules by-idmodules by-pathmodules issuermodules exportsmodules side-effectsassets listassets diffassets medialoaders hot-filesloaders directoriesbuild summarybuild entrypointsbuild configbundle optimizeerrors listerrors by-codeerrors by-levelrules listchunks listchunks by-idchunks largepackages listpackages by-namepackages dependenciespackages duplicatespackages similarmodules by-idmodules by-pathmodules issuermodules exportsmodules side-effectsassets listassets diffassets medialoaders hot-filesloaders directoriesbuild summarybuild entrypointsbuild configbundle optimizeerrors listerrors by-codeerrors by-levelrules listnode ${ROOT}/skills/rsdoctor/scripts/rsdoctor.js <group> <subcommand> [options]<group> <subcommand> [--option value] [--data-file <path>] [--compact]--data-file <path>--compactnode ${ROOT}/skills/rsdoctor/scripts/rsdoctor.js <group> <subcommand> [options]<group> <subcommand> [--option value] [--data-file <path>] [--compact]--data-file <path>rsdoctor-data.json--compact@rsdoctor/rspack-plugin >= 1.1.2@rsdoctor/webpack-plugin >= 1.1.2@rsdoctor/rspack-plugin >= 1.1.2@rsdoctor/webpack-plugin >= 1.1.2@rsdoctor/rspack-pluginpackage.jsondevDependencies@rsdoctor/webpack-pluginpackage.jsondevDependenciespnpm add @rsdoctor/rspack-plugin -Dpnpm add @rsdoctor/webpack-plugin -Dpackage.json@rsdoctor/rspack-plugindevDependenciespackage.json@rsdoctor/webpack-plugindevDependenciespnpm add @rsdoctor/rspack-plugin -Dpnpm add @rsdoctor/webpack-plugin -Drsdoctor-data.jsonrsdoctor-data.jsonrsdoctor-data.jsondist/rsdoctor-data.jsonoutput/rsdoctor-data.jsonstatic/rsdoctor-data.json.rsdoctor/rsdoctor-data.jsonrsdoctor-data.jsonpnpm add @rsdoctor/rspack-plugin -Dpnpm add @rsdoctor/webpack-plugin -D// rspack.config.js
const { RsdoctorRspackPlugin } = require('@rsdoctor/rspack-plugin');
module.exports = {
// ... existing config
plugins: [
// ... existing plugins
// Only register plugin when RSDOCTOR is true, as plugin will increase build time
process.env.RSDOCTOR &&
new RsdoctorRspackPlugin({
disableClientServer: true, // Must be true, otherwise local server will start and block LLM execution
output: {
mode: 'brief', // Required: Use brief mode
options: {
type: ['json'], // Must include 'json' to generate rsdoctor-data.json
},
},
}),
].filter(Boolean),
};// webpack.config.js
const { RsdoctorWebpackPlugin } = require('@rsdoctor/webpack-plugin');
module.exports = {
// ... existing config
plugins: [
// ... existing plugins
// Only register plugin when RSDOCTOR is true, as plugin will increase build time
process.env.RSDOCTOR &&
new RsdoctorWebpackPlugin({
disableClientServer: true, // Must be true, otherwise local server will start and block LLM execution
output: {
mode: 'brief', // Required: Use brief mode
options: {
type: ['json'], // Must include 'json' to generate rsdoctor-data.json
},
},
}),
].filter(Boolean),
};# Set RSDOCTOR environment variable and execute build
RSDOCTOR=true npm run build
# Or use pnpm
RSDOCTOR=true pnpm run build
# Or use yarn
RSDOCTOR=true yarn buildrsdoctor-data.jsondist/rsdoctor-data.jsonoutput/rsdoctor-data.jsonstatic/rsdoctor-data.json--data-file <path>rsdoctor-data.jsonundefinedrsdoctor-data.jsonrsdoctor-data.jsonrsdoctor-data.jsondist/rsdoctor-data.jsonoutput/rsdoctor-data.jsonstatic/rsdoctor-data.json.rsdoctor/rsdoctor-data.jsonrsdoctor-data.jsonpnpm add @rsdoctor/rspack-plugin -Dpnpm add @rsdoctor/webpack-plugin -D// rspack.config.js
const { RsdoctorRspackPlugin } = require('@rsdoctor/rspack-plugin');
module.exports = {
// ... 现有配置
plugins: [
// ... 现有插件
// 仅当RSDOCTOR为true时注册插件,因为插件会增加构建时间
process.env.RSDOCTOR &&
new RsdoctorRspackPlugin({
disableClientServer: true, // 必须设为true,否则会启动本地服务器并阻塞LLM执行
output: {
mode: 'brief', // 必填:使用简洁模式
options: {
type: ['json'], // 必须包含'json'以生成rsdoctor-data.json
},
},
}),
].filter(Boolean),
};// webpack.config.js
const { RsdoctorWebpackPlugin } = require('@rsdoctor/webpack-plugin');
module.exports = {
// ... 现有配置
plugins: [
// ... 现有插件
// 仅当RSDOCTOR为true时注册插件,因为插件会增加构建时间
process.env.RSDOCTOR &&
new RsdoctorWebpackPlugin({
disableClientServer: true, // 必须设为true,否则会启动本地服务器并阻塞LLM执行
output: {
mode: 'brief', // 必填:使用简洁模式
options: {
type: ['json'], // 必须包含'json'以生成rsdoctor-data.json
},
},
}),
].filter(Boolean),
};# 设置RSDOCTOR环境变量并执行构建
RSDOCTOR=true npm run build
# 或使用pnpm
RSDOCTOR=true pnpm run build
# 或使用yarn
RSDOCTOR=true yarn buildrsdoctor-data.jsondist/rsdoctor-data.jsonoutput/rsdoctor-data.jsonstatic/rsdoctor-data.json--data-file <path>rsdoctor-data.jsonundefinedundefinedundefineddist/node ${ROOT}/skills/rsdoctor/scripts/rsdoctor.js <group> <subcommand> [options] [--data-file <path>] [--compact]<group> <subcommand> [--option value]--data-file <path>--compactundefineddist/node ${ROOT}/skills/rsdoctor/scripts/rsdoctor.js <group> <subcommand> [options] [--data-file <path>] [--compact]<group> <subcommand> [--option value]--data-file <path>rsdoctor-data.json--compactundefinedundefinedundefined<group> <subcommand> [options]modules by-path --path "<path>"getModuleByPath()modules by-id --id <id>getModuleById()<group> <subcommand>--data-file <path><group> <subcommand> [options]modules by-path --path "<path>"getModuleByPath()modules by-id --id <id>getModuleById()<group> <subcommand>--data-file <path>chunks listlistChunks()--page-number <pageNumber>--page-size <pageSize># Default: return page 1, 100 items per page
node scripts/rsdoctor.js chunks list --data-file ./dist/rsdoctor-data.json
# Return page 2, 50 items per page
node scripts/rsdoctor.js chunks list --page-number 2 --page-size 50 --data-file ./dist/rsdoctor-data.jsonchunks by-id --id <n>getChunkById()chunks largefindLargeChunks()chunks listlistChunks()--page-number <pageNumber>--page-size <pageSize># 默认:返回第1页,每页100条
node scripts/rsdoctor.js chunks list --data-file ./dist/rsdoctor-data.json
# 返回第2页,每页50条
node scripts/rsdoctor.js chunks list --page-number 2 --page-size 50 --data-file ./dist/rsdoctor-data.jsonchunks by-id --id <n>getChunkById()chunks largefindLargeChunks()modules by-id --id <id>getModuleById()modules by-path --path "<path>"getModuleByPath()modules by-id --id <id>modules issuer --id <id>getModuleIssuerPath()modules exportsgetModuleExports()modules side-effectsgetSideEffects()module.bailoutReasonrsdoctor-data.jsonbailoutReasonrsdoctor-data.jsonbailoutReason"side effects""dynamic import""unknown exports""re-export"bailoutReason--page-number <pageNumber>--page-size <pageSize># Default: return page 1, 100 items per page
node scripts/rsdoctor.js modules side-effects --data-file ./dist/rsdoctor-data.json
# Return page 2, 200 items per page
node scripts/rsdoctor.js modules side-effects --page-number 2 --page-size 200 --data-file ./dist/rsdoctor-data.jsonmodules by-id --id <id>getModuleById()modules by-path --path "<path>"getModuleByPath()modules by-id --id <id>modules issuer --id <id>getModuleIssuerPath()modules exportsgetModuleExports()modules side-effectsgetSideEffects()rsdoctor-data.jsonmodule.bailoutReasonrsdoctor-data.jsonbailoutReasonbailoutReason"side effects""dynamic import""unknown exports""re-export"bailoutReason--page-number <pageNumber>--page-size <pageSize># 默认:返回第1页,每页100条
node scripts/rsdoctor.js modules side-effects --data-file ./dist/rsdoctor-data.json
# 返回第2页,每页200条
node scripts/rsdoctor.js modules side-effects --page-number 2 --page-size 200 --data-file ./dist/rsdoctor-data.jsonpackages listlistPackages()packages by-name --name <pkg>getPackageByName()packages dependenciesgetPackageDependencies()--page-number <pageNumber>--page-size <pageSize># Default: return page 1, 100 items per page
node scripts/rsdoctor.js packages dependencies --data-file ./dist/rsdoctor-data.json
# Return page 2, 200 items per page
node scripts/rsdoctor.js packages dependencies --page-number 2 --page-size 200 --data-file ./dist/rsdoctor-data.jsonpackages duplicatesdetectDuplicatePackages()packages similardetectSimilarPackages()packages listlistPackages()packages by-name --name <pkg>getPackageByName()packages dependenciesgetPackageDependencies()--page-number <pageNumber>--page-size <pageSize># 默认:返回第1页,每页100条
node scripts/rsdoctor.js packages dependencies --data-file ./dist/rsdoctor-data.json
# 返回第2页,每页200条
node scripts/rsdoctor.js packages dependencies --page-number 2 --page-size 200 --data-file ./dist/rsdoctor-data.jsonpackages duplicatesdetectDuplicatePackages()packages similardetectSimilarPackages()assets listlistAssets()assets diff --baseline <path> --current <path>diffAssets()assets mediagetMediaAssets()assets listlistAssets()assets diff --baseline <path> --current <path>diffAssets()assets mediagetMediaAssets()loaders hot-filesgetHotFiles()--page-number <pageNumber>--page-size <pageSize>--min-costs <minCosts># Default: return page 1, 100 items per page
node scripts/rsdoctor.js loaders hot-files --data-file ./dist/rsdoctor-data.json
# Return page 2, 50 items per page, and only show items with cost >= 100ms
node scripts/rsdoctor.js loaders hot-files --page-number 2 --page-size 50 --min-costs 100 --data-file ./dist/rsdoctor-data.jsonloaders directoriesgetDirectories()--page-number <pageNumber>--page-size <pageSize>--min-total-costs <minTotalCosts># Default: return page 1, 100 items per page
node scripts/rsdoctor.js loaders directories --data-file ./dist/rsdoctor-data.json
# Return page 1, 200 items per page, and only show directories with total cost >= 500ms
node scripts/rsdoctor.js loaders directories --page-size 200 --min-total-costs 500 --data-file ./dist/rsdoctor-data.jsonloaders hot-filesgetHotFiles()--page-number <pageNumber>--page-size <pageSize>--min-costs <minCosts># 默认:返回第1页,每页100条
node scripts/rsdoctor.js loaders hot-files --data-file ./dist/rsdoctor-data.json
# 返回第2页,每页50条,且仅显示耗时≥100ms的条目
node scripts/rsdoctor.js loaders hot-files --page-number 2 --page-size 50 --min-costs 100 --data-file ./dist/rsdoctor-data.jsonloaders directoriesgetDirectories()--page-number <pageNumber>--page-size <pageSize>--min-total-costs <minTotalCosts># 默认:返回第1页,每页100条
node scripts/rsdoctor.js loaders directories --data-file ./dist/rsdoctor-data.json
# 返回第1页,每页200条,且仅显示总耗时≥500ms的目录
node scripts/rsdoctor.js loaders directories --page-size 200 --min-total-costs 500 --data-file ./dist/rsdoctor-data.jsonbuild summarygetSummary()build entrypointslistEntrypoints()build configgetConfig()bundle optimizeoptimizeBundle()--step <step>--side-effects-page-number <pageNumber>--side-effects-page-size <pageSize># Step 1: Execute basic analysis (duplicates/similar/media/large chunks)
node scripts/rsdoctor.js bundle optimize --step 1 --data-file ./dist/rsdoctor-data.json
# Step 2: Execute side effects modules analysis (paginated)
node scripts/rsdoctor.js bundle optimize --step 2 --side-effects-page-number 1 --side-effects-page-size 100 --data-file ./dist/rsdoctor-data.json
# Default: Execute all steps (backward compatible)
node scripts/rsdoctor.js bundle optimize --data-file ./dist/rsdoctor-data.jsonbuild summarygetSummary()build entrypointslistEntrypoints()build configgetConfig()bundle optimizeoptimizeBundle()--step <step>--side-effects-page-number <pageNumber>--side-effects-page-size <pageSize># 步骤1:执行基础分析(重复包/相似包/媒体资源/大体积chunk)
node scripts/rsdoctor.js bundle optimize --step 1 --data-file ./dist/rsdoctor-data.json
# 步骤2:执行副作用模块分析(分页)
node scripts/rsdoctor.js bundle optimize --step 2 --side-effects-page-number 1 --side-effects-page-size 100 --data-file ./dist/rsdoctor-data.json
# 默认:执行全部步骤(向下兼容)
node scripts/rsdoctor.js bundle optimize --data-file ./dist/rsdoctor-data.jsonerrors listlistErrors()errors by-code --code <code>getErrorsByCode()errors by-level --level <level>getErrorsByLevel()errors listlistErrors()errors by-code --code <code>getErrorsByCode()errors by-level --level <level>getErrorsByLevel()rules listlistRules()rules listlistRules()server portgetPort()server portgetPort()packages duplicatesdetectDuplicatePackages()packages similardetectSimilarPackages()assets mediagetMediaAssets()chunks largefindLargeChunks()modules side-effectsgetSideEffects()module.bailoutReasonrsdoctor-data.jsonbailoutReasonmoduleGraph.modulesrsdoctor-data.jsonbailoutReasonbailoutReason"side effects""dynamic import""unknown exports""re-export"rsdoctor-data.jsonbailoutReason--page-number <pageNumber>--page-size <pageSize># Default: return page 1, 100 items per page
node scripts/rsdoctor.js modules side-effects --data-file ./dist/rsdoctor-data.json
# Return page 2, 200 items per page
node scripts/rsdoctor.js modules side-effects --page-number 2 --page-size 200 --data-file ./dist/rsdoctor-data.jsonbundle optimizeoptimizeBundle()packages duplicatesdetectDuplicatePackages()packages similardetectSimilarPackages()assets mediagetMediaAssets()chunks largefindLargeChunks()modules side-effectsgetSideEffects()rsdoctor-data.jsonmodule.bailoutReasonrsdoctor-data.jsonmoduleGraph.modulesbailoutReasonbailoutReasonbailoutReason"side effects""dynamic import""unknown exports""re-export"rsdoctor-data.jsonbailoutReason--page-number <pageNumber>--page-size <pageSize># 默认:返回第1页,每页100条
node scripts/rsdoctor.js modules side-effects --data-file ./dist/rsdoctor-data.json
# 返回第2页,每页200条
node scripts/rsdoctor.js modules side-effects --page-number 2 --page-size 200 --data-file ./dist/rsdoctor-data.jsonbundle optimizeoptimizeBundle()--compactinstallconfigconfig--compactinstallconfigconfig<group> <subcommand>modules side-effects<group>:<subcommand>modules:side-effectsmodules side-effectsgetSideEffects()bailoutReasonrsdoctor-data.jsonbailoutReasonmoduleGraph.modulesrsdoctor-data.jsonbailoutReason"side effects""dynamic import""unknown exports""re-export"bailoutReasonbailoutReason"side effects"bailoutReason"dynamic import"bailoutReason"unknown exports"rsdoctor-data.jsonbailoutReason<group> <subcommand>modules side-effects<group>:<subcommand>modules:side-effectsmodules side-effectsgetSideEffects()rsdoctor-data.jsonbailoutReasonrsdoctor-data.jsonmoduleGraph.modulesbailoutReasonbailoutReason"side effects""dynamic import""unknown exports""re-export"bailoutReasonbailoutReason"side effects"bailoutReason"dynamic import"bailoutReason"unknown exports"rsdoctor-data.jsonbailoutReasonRSDOCTOR=truersdoctor-data.jsondist/output/static/--data-fileserver portgetPort()@rsdoctor/rspack-plugin@rsdoctor/webpack-pluginpnpm add @rsdoctor/rspack-plugin -Dpnpm add @rsdoctor/webpack-plugin -D@rsdoctor/rspack-plugin >= 1.1.2@rsdoctor/webpack-plugin >= 1.1.2assets mediagetMediaAssets()bundle optimizeoptimizeBundle()--compact--data-file--data-file <path><group> <subcommand>chunks list<group>:<subcommand>chunks:listRSDOCTOR=truersdoctor-data.jsondist/output/static/--data-fileserver portgetPort()@rsdoctor/rspack-plugin@rsdoctor/webpack-pluginpnpm add @rsdoctor/rspack-plugin -Dpnpm add @rsdoctor/webpack-plugin -D@rsdoctor/rspack-plugin >= 1.1.2@rsdoctor/webpack-plugin >= 1.1.2assets mediagetMediaAssets()bundle optimizeoptimizeBundle()--compact--data-file--data-file <path><group> <subcommand>chunks list<group>:<subcommand>chunks:list