bunchee 6.10.0 → 6.12.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/README.md +10 -11
- package/dist/bin/cli.js +2 -3
- package/dist/index.js +112 -51
- package/package.json +16 -15
package/README.md
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="left">
|
|
8
8
|
<a href="https://npm.im/bunchee">
|
|
9
|
-
<img src="https://
|
|
9
|
+
<img src="https://img.shields.io/npm/v/bunchee?style=flat&colorA=000000&colorB=000000">
|
|
10
10
|
</a>
|
|
11
11
|
|
|
12
|
-
<a href="https://
|
|
13
|
-
<img src="https://
|
|
12
|
+
<a href="https://npm.im/bunchee">
|
|
13
|
+
<img src="https://img.shields.io/npm/dt/bunchee.svg?style=flat&colorA=000000&colorB=000000">
|
|
14
14
|
</a>
|
|
15
15
|
</p>
|
|
16
16
|
|
|
@@ -28,6 +28,13 @@ By using the standard `exports` configuration as the single source of truth, **b
|
|
|
28
28
|
npm install --save-dev bunchee typescript
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
> [!NOTE]
|
|
32
|
+
> TypeScript 7+ compiles natively and its `typescript` package no longer ships the JavaScript compiler API used for generating type declarations. If you're on TypeScript 7 or above, also install the official compat API package [`@typescript/typescript6`](https://www.npmjs.com/package/@typescript/typescript6) and `bunchee` will pick it up automatically:
|
|
33
|
+
>
|
|
34
|
+
> ```sh
|
|
35
|
+
> npm install --save-dev @typescript/typescript6
|
|
36
|
+
> ```
|
|
37
|
+
|
|
31
38
|
### Configuration
|
|
32
39
|
|
|
33
40
|
Create entry files of your library and `package.json`.
|
|
@@ -550,14 +557,6 @@ export { readme, config, styles, content }
|
|
|
550
557
|
|
|
551
558
|
All these imports will be bundled as string content, regardless of the original file extension.
|
|
552
559
|
|
|
553
|
-
### Agent Skills
|
|
554
|
-
|
|
555
|
-
If you want to use bunchee with coding agents with skills, run:
|
|
556
|
-
|
|
557
|
-
```sh
|
|
558
|
-
npx skills add huozhi/npm-skills
|
|
559
|
-
```
|
|
560
|
-
|
|
561
560
|
### Node.js API
|
|
562
561
|
|
|
563
562
|
```ts
|
package/dist/bin/cli.js
CHANGED
|
@@ -525,9 +525,8 @@ function addToExportDistMap(exportToDist, exportPath, outputConditionPairs) {
|
|
|
525
525
|
* './index.react-server': { development: ..., default: ... }
|
|
526
526
|
* }
|
|
527
527
|
*/ async function parseExports(pkg, cwd) {
|
|
528
|
-
var _pkg_exports;
|
|
528
|
+
var _pkg_exports, _pkg_bin;
|
|
529
529
|
const exportsField = (_pkg_exports = pkg.exports) != null ? _pkg_exports : {};
|
|
530
|
-
var _pkg_bin;
|
|
531
530
|
const bins = (_pkg_bin = pkg.bin) != null ? _pkg_bin : {};
|
|
532
531
|
const exportToDist = new Map();
|
|
533
532
|
const isEsmPkg = isESModulePackage(pkg.type);
|
|
@@ -856,7 +855,7 @@ async function lint$1(cwd) {
|
|
|
856
855
|
}
|
|
857
856
|
}
|
|
858
857
|
|
|
859
|
-
var version = "6.
|
|
858
|
+
var version = "6.12.0";
|
|
860
859
|
|
|
861
860
|
async function writeDefaultTsconfig(tsConfigPath) {
|
|
862
861
|
await fs.promises.writeFile(tsConfigPath, JSON.stringify(DEFAULT_TS_CONFIG, null, 2), 'utf-8');
|
package/dist/index.js
CHANGED
|
@@ -306,7 +306,7 @@ function validateEntryFiles(entryFiles) {
|
|
|
306
306
|
|
|
307
307
|
function exit(err) {
|
|
308
308
|
logger.error(err);
|
|
309
|
-
throw new Error(err) ;
|
|
309
|
+
throw typeof err === 'string' ? new Error(err) : err;
|
|
310
310
|
}
|
|
311
311
|
async function getPackageMeta(cwd) {
|
|
312
312
|
const pkgFilePath = path__default.default.resolve(cwd, 'package.json');
|
|
@@ -650,9 +650,8 @@ function addToExportDistMap(exportToDist, exportPath, outputConditionPairs) {
|
|
|
650
650
|
* './index.react-server': { development: ..., default: ... }
|
|
651
651
|
* }
|
|
652
652
|
*/ async function parseExports(pkg, cwd) {
|
|
653
|
-
var _pkg_exports;
|
|
653
|
+
var _pkg_exports, _pkg_bin;
|
|
654
654
|
const exportsField = (_pkg_exports = pkg.exports) != null ? _pkg_exports : {};
|
|
655
|
-
var _pkg_bin;
|
|
656
655
|
const bins = (_pkg_bin = pkg.bin) != null ? _pkg_bin : {};
|
|
657
656
|
const exportToDist = new Map();
|
|
658
657
|
const isEsmPkg = isESModulePackage(pkg.type);
|
|
@@ -915,6 +914,12 @@ function getSpecialExportTypeFromSourcePath(sourcePath) {
|
|
|
915
914
|
const fileBaseName = baseNameWithoutExtension(sourcePath);
|
|
916
915
|
return getSpecialExportTypeFromComposedExportPath(fileBaseName);
|
|
917
916
|
}
|
|
917
|
+
const ModuleFormat = {
|
|
918
|
+
none: 0,
|
|
919
|
+
esm: 1,
|
|
920
|
+
cjs: 2,
|
|
921
|
+
all: 3
|
|
922
|
+
};
|
|
918
923
|
function getExportTypeFromExportTypesArray(types) {
|
|
919
924
|
let exportType = 'default';
|
|
920
925
|
new Set(types).forEach((value)=>{
|
|
@@ -1033,9 +1038,16 @@ async function collectSourceEntriesByExportPath(sourceFolderPath, originalSubpat
|
|
|
1033
1038
|
*/ async function collectSourceEntriesFromExportPaths(sourceFolderPath, parsedExportsInfo, pkg) {
|
|
1034
1039
|
const bins = new Map();
|
|
1035
1040
|
const exportsEntries = new Map();
|
|
1041
|
+
let requiredPrivateModuleFormats = ModuleFormat.none;
|
|
1036
1042
|
for (const [exportPath, exportInfo] of parsedExportsInfo.entries()){
|
|
1037
1043
|
const specialConditions = new Set();
|
|
1038
|
-
for (const [
|
|
1044
|
+
for (const [outputPath, composedExportType] of exportInfo){
|
|
1045
|
+
// Collect required private shared module formats while walking export outputs.
|
|
1046
|
+
const exportType = composedExportType.split('.').pop();
|
|
1047
|
+
if (exportType !== 'types') {
|
|
1048
|
+
const ext = path__default.default.extname(outputPath).slice(1);
|
|
1049
|
+
requiredPrivateModuleFormats |= isCjsExportName(pkg, composedExportType, ext) ? ModuleFormat.cjs : ModuleFormat.esm;
|
|
1050
|
+
}
|
|
1039
1051
|
const specialExportType = getSpecialExportTypeFromComposedExportPath(composedExportType);
|
|
1040
1052
|
if (specialExportType !== 'default') {
|
|
1041
1053
|
specialConditions.add(specialExportType);
|
|
@@ -1064,6 +1076,7 @@ async function collectSourceEntriesByExportPath(sourceFolderPath, originalSubpat
|
|
|
1064
1076
|
],
|
|
1065
1077
|
expandDirectories: false
|
|
1066
1078
|
});
|
|
1079
|
+
const defaultPrivateModuleFormats = requiredPrivateModuleFormats !== ModuleFormat.none ? requiredPrivateModuleFormats : ModuleFormat.all;
|
|
1067
1080
|
for (const file of privateFiles){
|
|
1068
1081
|
const sourceFileAbsolutePath = path__default.default.join(sourceFolderPath, file);
|
|
1069
1082
|
const exportPath = sourceFilenameToExportFullPath(file);
|
|
@@ -1074,31 +1087,36 @@ async function collectSourceEntriesByExportPath(sourceFolderPath, originalSubpat
|
|
|
1074
1087
|
// export type: default => ''
|
|
1075
1088
|
// export type: development => '.development'
|
|
1076
1089
|
const condPart = isSpecialExport ? specialExportType + '.' : '';
|
|
1090
|
+
const sourceExt = path__default.default.extname(file).slice(1);
|
|
1091
|
+
const formats = sourceExt === 'cts' ? ModuleFormat.cjs : sourceExt === 'mts' ? ModuleFormat.esm : defaultPrivateModuleFormats;
|
|
1077
1092
|
// Map private shared files to the dist directory
|
|
1078
1093
|
// e.g. ./_utils.ts -> ./dist/_utils.js
|
|
1079
|
-
// TODO: improve the logic to only generate the required files, not all possible files
|
|
1080
1094
|
const isTs = isTypescriptFile(file);
|
|
1081
|
-
const
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
];
|
|
1091
|
-
const privateExportInfo = [
|
|
1092
|
-
...isTs ? typesInfos : [],
|
|
1093
|
-
[
|
|
1095
|
+
const privateExportInfo = [];
|
|
1096
|
+
if (formats === ModuleFormat.esm || formats === ModuleFormat.all) {
|
|
1097
|
+
if (isTs) {
|
|
1098
|
+
privateExportInfo.push([
|
|
1099
|
+
posixRelativify(path.posix.join('./dist', exportPath + (isEsmPkg ? '.d.ts' : '.d.mts'))),
|
|
1100
|
+
condPart + 'import.types'
|
|
1101
|
+
]);
|
|
1102
|
+
}
|
|
1103
|
+
privateExportInfo.push([
|
|
1094
1104
|
posixRelativify(path.posix.join('./dist', exportPath + (isEsmPkg ? '.js' : '.mjs'))),
|
|
1095
1105
|
condPart + 'import.default'
|
|
1096
|
-
]
|
|
1097
|
-
|
|
1106
|
+
]);
|
|
1107
|
+
}
|
|
1108
|
+
if (formats === ModuleFormat.cjs || formats === ModuleFormat.all) {
|
|
1109
|
+
if (isTs) {
|
|
1110
|
+
privateExportInfo.push([
|
|
1111
|
+
posixRelativify(path.posix.join('./dist', exportPath + (isEsmPkg ? '.d.cts' : '.d.ts'))),
|
|
1112
|
+
condPart + 'require.types'
|
|
1113
|
+
]);
|
|
1114
|
+
}
|
|
1115
|
+
privateExportInfo.push([
|
|
1098
1116
|
posixRelativify(path.posix.join('./dist', exportPath + (isEsmPkg ? '.cjs' : '.js'))),
|
|
1099
1117
|
condPart + 'require.default'
|
|
1100
|
-
]
|
|
1101
|
-
|
|
1118
|
+
]);
|
|
1119
|
+
}
|
|
1102
1120
|
const exportsInfo = parsedExportsInfo.get(normalizedExportPath);
|
|
1103
1121
|
if (!exportsInfo) {
|
|
1104
1122
|
// Add private shared files to parsedExportsInfo
|
|
@@ -1202,27 +1220,80 @@ const memoizeByKey = (fn)=>{
|
|
|
1202
1220
|
};
|
|
1203
1221
|
const memoize = (fn)=>createMemoize(fn);
|
|
1204
1222
|
|
|
1223
|
+
// TypeScript 7+ compiles natively and its `typescript` package no longer ships
|
|
1224
|
+
// the JavaScript compiler API (the main export only contains the version).
|
|
1225
|
+
// `@typescript/typescript6` is the official package re-exporting the TS 6 API.
|
|
1226
|
+
const TS_COMPAT_PACKAGE = '@typescript/typescript6';
|
|
1205
1227
|
let hasLoggedTsWarning = false;
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1228
|
+
let hasLoggedTsCompatFallback = false;
|
|
1229
|
+
let hasRedirectedTsRequire = false;
|
|
1230
|
+
// Resolve to a concrete file path (works in both Node.js and Bun); the TS 7 fallback also needs the path to redirect `require('typescript')`.
|
|
1231
|
+
function resolveModulePath(request, paths) {
|
|
1210
1232
|
try {
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1233
|
+
return require.resolve(request, {
|
|
1234
|
+
paths
|
|
1235
|
+
});
|
|
1236
|
+
} catch {
|
|
1237
|
+
return null;
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
function hasTsCompilerApi(ts) {
|
|
1241
|
+
return typeof (ts == null ? void 0 : ts.readConfigFile) === 'function' && typeof (ts == null ? void 0 : ts.parseJsonConfigFileContent) === 'function';
|
|
1242
|
+
}
|
|
1243
|
+
// Redirect `require('typescript')` to the TS 6 compat API so dependencies
|
|
1244
|
+
// relying on the JS compiler API (e.g. rollup-plugin-dts) keep working
|
|
1245
|
+
// when the workspace TypeScript is v7+.
|
|
1246
|
+
function redirectTypescriptRequire(tsApiPath) {
|
|
1247
|
+
if (hasRedirectedTsRequire) return;
|
|
1248
|
+
hasRedirectedTsRequire = true;
|
|
1249
|
+
const moduleAny = module$1.Module;
|
|
1250
|
+
const originalResolveFilename = moduleAny._resolveFilename;
|
|
1251
|
+
moduleAny._resolveFilename = function(request, ...args) {
|
|
1252
|
+
if (request === 'typescript') {
|
|
1253
|
+
return tsApiPath;
|
|
1254
|
+
}
|
|
1255
|
+
return originalResolveFilename.apply(this, [
|
|
1256
|
+
request,
|
|
1257
|
+
...args
|
|
1258
|
+
]);
|
|
1259
|
+
};
|
|
1260
|
+
}
|
|
1261
|
+
function resolveTypescript(cwd) {
|
|
1262
|
+
const searchPaths = module$1.Module._nodeModulePaths(cwd);
|
|
1263
|
+
const tsPath = resolveModulePath('typescript', searchPaths);
|
|
1264
|
+
let ts = null;
|
|
1265
|
+
if (tsPath) {
|
|
1266
|
+
try {
|
|
1216
1267
|
ts = require(tsPath);
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1268
|
+
} catch (e) {
|
|
1269
|
+
console.error(e);
|
|
1219
1270
|
}
|
|
1220
|
-
}
|
|
1221
|
-
|
|
1271
|
+
}
|
|
1272
|
+
if (!ts) {
|
|
1222
1273
|
if (!hasLoggedTsWarning) {
|
|
1223
1274
|
hasLoggedTsWarning = true;
|
|
1224
1275
|
exit('Could not load TypeScript compiler. Try to install `typescript` as dev dependency');
|
|
1225
1276
|
}
|
|
1277
|
+
return ts;
|
|
1278
|
+
}
|
|
1279
|
+
if (!hasTsCompilerApi(ts)) {
|
|
1280
|
+
var _resolveModulePath;
|
|
1281
|
+
const tsCompatPath = (_resolveModulePath = resolveModulePath(TS_COMPAT_PACKAGE, searchPaths)) != null ? _resolveModulePath : resolveModulePath(TS_COMPAT_PACKAGE, [
|
|
1282
|
+
__dirname
|
|
1283
|
+
]);
|
|
1284
|
+
if (!tsCompatPath) {
|
|
1285
|
+
if (!hasLoggedTsWarning) {
|
|
1286
|
+
hasLoggedTsWarning = true;
|
|
1287
|
+
exit(`Detected TypeScript ${ts.version || '7+'}, which no longer ships the JavaScript compiler API required for generating type declarations. Install \`${TS_COMPAT_PACKAGE}\` as dev dependency to keep building types`);
|
|
1288
|
+
}
|
|
1289
|
+
return ts;
|
|
1290
|
+
}
|
|
1291
|
+
redirectTypescriptRequire(tsCompatPath);
|
|
1292
|
+
if (!hasLoggedTsCompatFallback) {
|
|
1293
|
+
hasLoggedTsCompatFallback = true;
|
|
1294
|
+
logger.log(pc.dim(`Using ${TS_COMPAT_PACKAGE} API for TypeScript ${ts.version} type declaration generation`));
|
|
1295
|
+
}
|
|
1296
|
+
ts = require(tsCompatPath);
|
|
1226
1297
|
}
|
|
1227
1298
|
return ts;
|
|
1228
1299
|
}
|
|
@@ -1299,21 +1370,16 @@ async function writeDefaultTsconfig(tsConfigPath) {
|
|
|
1299
1370
|
|
|
1300
1371
|
const FILENAME_REGEX = /__filename/;
|
|
1301
1372
|
const DIRNAME_REGEX = /__dirname/;
|
|
1302
|
-
// not char, or space before require(.resolve)?(
|
|
1303
|
-
const GLOBAL_REQUIRE_REGEX = /(?:^|[^.\w'"`])\brequire(\.resolve)?\(\s*[\r\n]*(\w|['"`])/;
|
|
1304
1373
|
const PolyfillComment = '/** rollup-private-do-not-use-esm-shim-polyfill */';
|
|
1305
|
-
const createESMShim = ({ filename, dirname
|
|
1374
|
+
const createESMShim = ({ filename, dirname })=>{
|
|
1306
1375
|
const useNodeUrl = filename || dirname;
|
|
1307
1376
|
const useNodePath = dirname;
|
|
1308
|
-
const useNodeModule = globalRequire;
|
|
1309
1377
|
return `\
|
|
1310
1378
|
${PolyfillComment}
|
|
1311
1379
|
${useNodeUrl ? `import __node_cjsUrl from 'node:url'` : ''};
|
|
1312
1380
|
${useNodePath ? `import __node_cjsPath from 'node:path';` : ''}
|
|
1313
|
-
${useNodeModule ? `import __node_cjsModule from 'node:module';` : ''}
|
|
1314
1381
|
${useNodeUrl ? 'const __filename = __node_cjsUrl.fileURLToPath(import.meta.url);' : ''}
|
|
1315
1382
|
${useNodePath ? 'const __dirname = __node_cjsPath.dirname(__filename);' : ''}
|
|
1316
|
-
${useNodeModule ? 'const require = __node_cjsModule.createRequire(import.meta.url);' : ''}
|
|
1317
1383
|
`.trim() + '\n';
|
|
1318
1384
|
};
|
|
1319
1385
|
function esmShim() {
|
|
@@ -1328,17 +1394,13 @@ function esmShim() {
|
|
|
1328
1394
|
}
|
|
1329
1395
|
let hasFilename = false;
|
|
1330
1396
|
let hasDirname = false;
|
|
1331
|
-
let hasGlobalRequire = false;
|
|
1332
1397
|
if (FILENAME_REGEX.test(code)) {
|
|
1333
1398
|
hasFilename = true;
|
|
1334
1399
|
}
|
|
1335
1400
|
if (DIRNAME_REGEX.test(code)) {
|
|
1336
1401
|
hasDirname = true;
|
|
1337
1402
|
}
|
|
1338
|
-
if (
|
|
1339
|
-
hasGlobalRequire = true;
|
|
1340
|
-
}
|
|
1341
|
-
if (!hasFilename && !hasDirname && !hasGlobalRequire) {
|
|
1403
|
+
if (!hasFilename && !hasDirname) {
|
|
1342
1404
|
return null;
|
|
1343
1405
|
}
|
|
1344
1406
|
const magicString = new MagicString__default.default(code);
|
|
@@ -1370,8 +1432,7 @@ function esmShim() {
|
|
|
1370
1432
|
}
|
|
1371
1433
|
magicString.appendRight(end, '\n' + createESMShim({
|
|
1372
1434
|
filename: hasFilename,
|
|
1373
|
-
dirname: hasDirname
|
|
1374
|
-
globalRequire: hasGlobalRequire
|
|
1435
|
+
dirname: hasDirname
|
|
1375
1436
|
}));
|
|
1376
1437
|
return {
|
|
1377
1438
|
code: magicString.toString(),
|
|
@@ -1406,8 +1467,8 @@ function minify(code) {
|
|
|
1406
1467
|
return cleanCssInstance.minify(code).styles;
|
|
1407
1468
|
}
|
|
1408
1469
|
function inlineCss(options) {
|
|
1409
|
-
const cssIds = new Set();
|
|
1410
1470
|
var _options_exclude;
|
|
1471
|
+
const cssIds = new Set();
|
|
1411
1472
|
const filter = pluginutils.createFilter([
|
|
1412
1473
|
'**/*.css'
|
|
1413
1474
|
], (_options_exclude = options.exclude) != null ? _options_exclude : []);
|
|
@@ -1809,11 +1870,11 @@ async function createDtsPlugin(tsCompilerOptions, tsConfigPath, respectExternal,
|
|
|
1809
1870
|
}
|
|
1810
1871
|
const memoizeDtsPluginByKey = memoizeByKey(createDtsPlugin);
|
|
1811
1872
|
async function buildInputConfig(entry, bundleConfig, exportCondition, buildContext, dts) {
|
|
1873
|
+
var _bundleConfig_external;
|
|
1812
1874
|
var _bundleConfig_file, _bundleConfig_file1;
|
|
1813
1875
|
const { entries, pkg, cwd, tsOptions: { tsConfigPath, tsCompilerOptions }, browserslistConfig, pluginContext } = buildContext;
|
|
1814
1876
|
const isBinEntry = isBinExportPath(exportCondition.name);
|
|
1815
1877
|
const hasNoExternal = bundleConfig.external === null;
|
|
1816
|
-
var _bundleConfig_external;
|
|
1817
1878
|
const externals = hasNoExternal ? [] : [
|
|
1818
1879
|
pkg.peerDependencies,
|
|
1819
1880
|
pkg.dependencies,
|
|
@@ -2124,6 +2185,7 @@ function createSplitChunks(dependencyGraphMap, entryFiles) {
|
|
|
2124
2185
|
}
|
|
2125
2186
|
|
|
2126
2187
|
async function buildOutputConfigs(bundleConfig, exportCondition, buildContext, dts) {
|
|
2188
|
+
var _exportCondition_export_types;
|
|
2127
2189
|
const { format } = bundleConfig;
|
|
2128
2190
|
const { entries, pkg, cwd, tsOptions: { tsCompilerOptions }, pluginContext } = buildContext;
|
|
2129
2191
|
// Add esm mark and interop helper if esm export is detected
|
|
@@ -2131,7 +2193,6 @@ async function buildOutputConfigs(bundleConfig, exportCondition, buildContext, d
|
|
|
2131
2193
|
const absoluteOutputFile = path.resolve(cwd, bundleConfig.file);
|
|
2132
2194
|
const isEsmPkg = isESModulePackage(pkg.type);
|
|
2133
2195
|
const name = filePathWithoutExtension(absoluteOutputFile);
|
|
2134
|
-
var _exportCondition_export_types;
|
|
2135
2196
|
const dtsFile = path.resolve(cwd, dts ? bundleConfig.file : (_exportCondition_export_types = exportCondition.export.types) != null ? _exportCondition_export_types : getExportFileTypePath(bundleConfig.file));
|
|
2136
2197
|
const typesDir = path.dirname(dtsFile);
|
|
2137
2198
|
const jsDir = path.dirname(absoluteOutputFile);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bunchee",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.12.0",
|
|
4
4
|
"description": "zero config bundler for js/ts/jsx libraries",
|
|
5
5
|
"bin": "./dist/bin/cli.js",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,17 +10,18 @@
|
|
|
10
10
|
"test:update": "TEST_UPDATE_SNAPSHOT=1 pnpm test",
|
|
11
11
|
"test:post": "cross-env POST_BUILD=1 pnpm test test/compile.test.ts test/integration.test.ts",
|
|
12
12
|
"site": "next dev docs",
|
|
13
|
-
"docs:build": "next build docs",
|
|
13
|
+
"docs:build": "pnpm --dir docs install && next build docs",
|
|
14
14
|
"clean": "rm -rf ./dist",
|
|
15
15
|
"new-test": "node ./scripts/new-test.js",
|
|
16
16
|
"test:ts-matrix": "node ./scripts/test-ts-matrix.js all",
|
|
17
17
|
"test:ts5": "node ./scripts/test-ts-matrix.js ts5",
|
|
18
18
|
"test:ts6": "node ./scripts/test-ts-matrix.js ts6",
|
|
19
|
+
"test:ts7": "node ./scripts/test-ts-matrix.js ts7",
|
|
19
20
|
"typecheck": "tsc --noEmit && tsc -p test/tsconfig.json --noEmit",
|
|
20
21
|
"prepare-release": "pnpm clean && pnpm build",
|
|
21
22
|
"publish-local": "pnpm prepare-release && pnpm test && pnpm publish",
|
|
22
23
|
"prepublishOnly": "pnpm prepare-release && chmod +x ./dist/bin/cli.js",
|
|
23
|
-
"run-ts": "cross-env SWC_NODE_IGNORE_DYNAMIC=1 node -r @swc-node/register",
|
|
24
|
+
"run-ts": "cross-env SWC_NODE_IGNORE_DYNAMIC=1 node -r ./scripts/ts6-compat.js -r @swc-node/register",
|
|
24
25
|
"ts-bunchee": "pnpm run-ts ./src/bin/index.ts",
|
|
25
26
|
"build-dir": "pnpm ts-bunchee --cwd",
|
|
26
27
|
"build": "pnpm run-ts ./src/bin/index.ts --runtime node",
|
|
@@ -59,20 +60,20 @@
|
|
|
59
60
|
},
|
|
60
61
|
"license": "MIT",
|
|
61
62
|
"dependencies": {
|
|
62
|
-
"@rollup/plugin-commonjs": "^29.0.
|
|
63
|
+
"@rollup/plugin-commonjs": "^29.0.3",
|
|
63
64
|
"@rollup/plugin-json": "^6.1.0",
|
|
64
|
-
"@rollup/plugin-node-resolve": "^16.0.
|
|
65
|
-
"@rollup/plugin-replace": "^6.0.
|
|
65
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
66
|
+
"@rollup/plugin-replace": "^6.0.3",
|
|
66
67
|
"@rollup/plugin-wasm": "^6.2.2",
|
|
67
|
-
"@rollup/pluginutils": "^5.
|
|
68
|
-
"@swc/core": "^1.
|
|
68
|
+
"@rollup/pluginutils": "^5.4.0",
|
|
69
|
+
"@swc/core": "^1.15.40",
|
|
69
70
|
"@swc/helpers": "^0.5.17",
|
|
70
71
|
"clean-css": "^5.3.3",
|
|
71
72
|
"magic-string": "^0.30.17",
|
|
72
73
|
"nanospinner": "^1.2.2",
|
|
73
74
|
"picomatch": "^4.0.2",
|
|
74
75
|
"pretty-bytes": "^5.6.0",
|
|
75
|
-
"rollup": "^4.
|
|
76
|
+
"rollup": "^4.61.0",
|
|
76
77
|
"rollup-plugin-dts": "^6.4.1",
|
|
77
78
|
"rollup-plugin-swc3": "^0.11.1",
|
|
78
79
|
"rollup-preserve-directives": "^1.1.3",
|
|
@@ -81,7 +82,7 @@
|
|
|
81
82
|
"yargs": "^17.7.2"
|
|
82
83
|
},
|
|
83
84
|
"peerDependencies": {
|
|
84
|
-
"typescript": "^4.1 || ^5.0 || ^6.0"
|
|
85
|
+
"typescript": "^4.1 || ^5.0 || ^6.0 || ^7.0"
|
|
85
86
|
},
|
|
86
87
|
"peerDependenciesMeta": {
|
|
87
88
|
"typescript": {
|
|
@@ -93,7 +94,7 @@
|
|
|
93
94
|
},
|
|
94
95
|
"devDependencies": {
|
|
95
96
|
"@huozhi/testing-package": "1.0.0",
|
|
96
|
-
"@swc-node/register": "^1.
|
|
97
|
+
"@swc-node/register": "^1.11.1",
|
|
97
98
|
"@swc/types": "^0.1.17",
|
|
98
99
|
"@tailwindcss/postcss": "^4.1.8",
|
|
99
100
|
"@types/clean-css": "^4.2.11",
|
|
@@ -102,12 +103,12 @@
|
|
|
102
103
|
"@types/react": "^19.2.14",
|
|
103
104
|
"@types/react-dom": "^19.2.3",
|
|
104
105
|
"@types/yargs": "^17.0.33",
|
|
105
|
-
"@typescript/
|
|
106
|
+
"@typescript/typescript6": "^6.0.2",
|
|
106
107
|
"bunchee": "link:./",
|
|
107
108
|
"cross-env": "^7.0.3",
|
|
108
109
|
"husky": "^9.0.11",
|
|
109
110
|
"lint-staged": "^15.2.2",
|
|
110
|
-
"next": "16.
|
|
111
|
+
"next": "^16.2.6",
|
|
111
112
|
"picocolors": "^1.0.0",
|
|
112
113
|
"postcss": "^8.5.4",
|
|
113
114
|
"prettier": "3.4.2",
|
|
@@ -115,10 +116,10 @@
|
|
|
115
116
|
"react-dom": "^19.2.1",
|
|
116
117
|
"tailwindcss": "^4.1.8",
|
|
117
118
|
"typescript": "^6.0.2",
|
|
118
|
-
"vitest": "^
|
|
119
|
+
"vitest": "^4.1.8"
|
|
119
120
|
},
|
|
120
121
|
"lint-staged": {
|
|
121
122
|
"*.{js,jsx,ts,tsx,md,json,yml,yaml}": "prettier --write"
|
|
122
123
|
},
|
|
123
|
-
"packageManager": "pnpm@
|
|
124
|
+
"packageManager": "pnpm@11.10.0"
|
|
124
125
|
}
|