{"schemaVersion":1,"verifiedAt":"2026-10-28T11:46:27.554Z","runtime":{"node":"26.12.0","platform":"win32","arch":"x64"},"tools":{"esbuild":"0.28.2","ncc":"0.45.0"},"scope":"仅验证最小 Node 夹具；不包含 Node 可执行文件、原生扩展、安装包或性能比较。","cases":[{"id":"source-with-local-link","status":0,"stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}"},{"id":"source-without-dependencies","status":1,"expected":"MODULE_NOT_FOUND","stdout":"","errorLine":"code: 'MODULE_NOT_FOUND',","files":[{"path":"index.cjs","bytes":268}],"bytes":268},{"id":"esbuild-node-cjs","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.cjs","bytes":916}],"bytes":916,"externalImports":[{"path":"node:crypto","kind":"require-call","external":true}]},{"id":"esbuild-browser-unresolved-builtin","buildFailed":true,"errors":["Could not resolve \"node:crypto\""]},{"id":"esbuild-browser-with-external-builtin","status":0,"expected":"\"implementation\":\"browser\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"browser\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.cjs","bytes":913}],"bytes":913,"externalImports":[{"path":"node:crypto","kind":"require-call","external":true}]},{"id":"esbuild-cjs-entry-to-esm","status":1,"expected":"Dynamic require of \"node:crypto\" is not supported","stdout":"","errorLine":"Error: Dynamic require of \"node:crypto\" is not supported","files":[{"path":"index.mjs","bytes":1447}],"bytes":1447,"externalImports":[{"path":"node:crypto","kind":"require-call","external":true}]},{"id":"esbuild-pure-cjs-to-esm","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\"}","files":[{"path":"index.mjs","bytes":982}],"bytes":982,"externalImports":[]},{"id":"esbuild-esm-with-create-require","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.mjs","bytes":1569}],"bytes":1569,"externalImports":[{"path":"node:crypto","kind":"require-call","external":true}]},{"id":"esbuild-esm-with-fixed-native-import","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.mjs","bytes":1265}],"bytes":1265,"externalImports":[{"path":"node:crypto","kind":"import-statement","external":true}]},{"id":"esbuild-native-esm-with-bundled-cjs","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.mjs","bytes":2109}],"bytes":2109,"externalImports":[{"path":"node:crypto","kind":"import-statement","external":true}]},{"id":"esbuild-esm-with-external-package","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.mjs","bytes":341},{"path":"node_modules/demo-text-tools/browser.cjs","bytes":79},{"path":"node_modules/demo-text-tools/index.cjs","bytes":76},{"path":"node_modules/demo-text-tools/package.json","bytes":124}],"bytes":620,"includesProductionNodeModules":true},{"id":"esbuild-asset-not-copied","status":1,"expected":"ENOENT","stdout":"","errorLine":"Error: ENOENT: no such file or directory, open '<sandbox>\\esbuild-runtime-asset\\message.txt'","files":[{"path":"index.cjs","bytes":240}],"bytes":240},{"id":"esbuild-asset-copied","status":0,"expected":"hello from asset","stdout":"hello from asset","files":[{"path":"index.cjs","bytes":240},{"path":"message.txt","bytes":17}],"bytes":257},{"id":"ncc-node-cjs","status":0,"expected":"\"implementation\":\"node\"","stdout":"{\"text\":\"hello node\",\"implementation\":\"node\",\"digest\":\"c3f5abe3e11d87d645b9e9fda1bad6a8d2f9e54f7e81478138ac134ba7ac7280\"}","files":[{"path":"index.cjs","bytes":2127}],"bytes":2127,"emittedAssets":[]},{"id":"ncc-destructured-asset","status":1,"expected":"ENOENT","stdout":"","errorLine":"Error: ENOENT: no such file or directory, open '<sandbox>\\ncc-destructured-asset\\message.txt'","files":[{"path":"index.cjs","bytes":1972}],"bytes":1972,"emittedAssets":[]},{"id":"ncc-destructured-asset-manual-copy","status":0,"expected":"hello from asset","stdout":"hello from asset","files":[{"path":"index.cjs","bytes":1972},{"path":"message.txt","bytes":17}],"bytes":1989},{"id":"ncc-static-cjs-asset","status":1,"expected":"ENOENT","stdout":"","errorLine":"Error: ENOENT: no such file or directory, open '<sandbox>\\ncc-static-cjs-asset\\message.txt'","files":[{"path":"index.cjs","bytes":1954}],"bytes":1954,"emittedAssets":[]},{"id":"ncc-static-cjs-asset-manual-copy","status":0,"expected":"hello from asset","stdout":"hello from asset","files":[{"path":"index.cjs","bytes":1954},{"path":"message.txt","bytes":17}],"bytes":1971},{"id":"ncc-static-js-asset","status":0,"expected":"hello from asset","stdout":"hello from asset","files":[{"path":"index.cjs","bytes":1957},{"path":"message.txt","bytes":17}],"bytes":1974,"emittedAssets":["message.txt"]}]}