jiek 2.0.2 → 2.1.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/dist/cli-only-build.cjs +12 -82
- package/dist/cli-only-build.js +12 -82
- package/dist/cli.cjs +243 -69
- package/dist/cli.js +246 -72
- package/dist/rollup/index.cjs +2 -2
- package/dist/rollup/index.js +2 -2
- package/package.json +26 -33
- package/rollup/package.json +1 -0
- package/src/commands/build.ts +13 -18
- package/src/commands/publish.ts +341 -128
- package/src/rollup/index.ts +2 -2
package/dist/cli.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as childProcess from 'node:child_process';
|
2
2
|
import fs from 'node:fs';
|
3
|
-
import path, { isAbsolute, relative, resolve
|
4
|
-
import {
|
3
|
+
import path, { isAbsolute, relative, resolve } from 'node:path';
|
4
|
+
import { TAGS, bump } from '@jiek/utils/bumper';
|
5
5
|
import { program } from 'commander';
|
6
6
|
import detectIndent from 'detect-indent';
|
7
7
|
import { applyEdits, modify } from 'jsonc-parser';
|
@@ -14,14 +14,6 @@ import require$$0 from 'util';
|
|
14
14
|
import require$$0$1 from 'path';
|
15
15
|
import 'jiek/cli-only-build';
|
16
16
|
|
17
|
-
let resolve;
|
18
|
-
function actionDone() {
|
19
|
-
resolve();
|
20
|
-
}
|
21
|
-
function actionRestore() {
|
22
|
-
new Promise((r) => resolve = r);
|
23
|
-
}
|
24
|
-
|
25
17
|
let root;
|
26
18
|
function getRoot() {
|
27
19
|
if (root)
|
@@ -4240,7 +4232,7 @@ function getOutDirs({
|
|
4240
4232
|
js: "dts",
|
4241
4233
|
dts: "js"
|
4242
4234
|
}[type]] : outdir) ?? defaultOutdir;
|
4243
|
-
return (isAbsolute(dir) ? dir : `./${relative(cwd, resolve
|
4235
|
+
return (isAbsolute(dir) ? dir : `./${relative(cwd, resolve(cwd, dir))}`).replace("{{PKG_NAME}}", pkgName);
|
4244
4236
|
}
|
4245
4237
|
return {
|
4246
4238
|
js: resolveOutdir("js"),
|
@@ -4424,14 +4416,59 @@ Support with variables: 'PKG_NAME',
|
|
4424
4416
|
.e.g. 'dist/{{PKG_NAME}}'.
|
4425
4417
|
`.trim();
|
4426
4418
|
|
4427
|
-
|
4428
|
-
|
4419
|
+
const description = `
|
4420
|
+
Publish package to npm registry, and auto generate exports field and other fields in published package.json.
|
4421
|
+
If you want to through the options to the \`pnpm publish\` command, you can pass the options after '--'.
|
4422
|
+
`.trim();
|
4423
|
+
async function forEachSelectedProjectsGraphEntries(callback) {
|
4429
4424
|
const { value = {} } = await getSelectedProjectsGraph() ?? {};
|
4430
4425
|
const selectedProjectsGraphEntries = Object.entries(value);
|
4431
4426
|
if (selectedProjectsGraphEntries.length === 0) {
|
4432
4427
|
throw new Error("no packages selected");
|
4433
4428
|
}
|
4434
|
-
const
|
4429
|
+
for (const [dir, manifest] of selectedProjectsGraphEntries) {
|
4430
|
+
callback(dir, manifest);
|
4431
|
+
}
|
4432
|
+
}
|
4433
|
+
program.command("publish").description(description).aliases(["pub", "p"]).option("-b, --bumper <bumper>", "bump version", "patch").option("-no-b, --no-bumper", "no bump version").option("-o, --outdir <OUTDIR>", outdirDescription, String, "dist").action(async ({ outdir, bumper }) => {
|
4434
|
+
let shouldPassThrough = false;
|
4435
|
+
const passThroughOptions = process.argv.reduce(
|
4436
|
+
(acc, value) => {
|
4437
|
+
if (shouldPassThrough) {
|
4438
|
+
acc.push(value);
|
4439
|
+
}
|
4440
|
+
if (value === "--") {
|
4441
|
+
shouldPassThrough = true;
|
4442
|
+
}
|
4443
|
+
return acc;
|
4444
|
+
},
|
4445
|
+
[]
|
4446
|
+
);
|
4447
|
+
await forEachSelectedProjectsGraphEntries((dir) => {
|
4448
|
+
const args = ["pnpm", "publish", "--access", "public", "--no-git-checks"];
|
4449
|
+
if (bumper && TAGS.includes(bumper)) {
|
4450
|
+
args.push("--tag", bumper);
|
4451
|
+
}
|
4452
|
+
args.push(...passThroughOptions);
|
4453
|
+
childProcess.execSync(args.join(" "), {
|
4454
|
+
cwd: dir,
|
4455
|
+
stdio: "inherit",
|
4456
|
+
env: {
|
4457
|
+
...process.env,
|
4458
|
+
JIEK_PUBLISH_OUTDIR: JSON.stringify(outdir),
|
4459
|
+
JIEK_PUBLISH_BUMPER: JSON.stringify(bumper)
|
4460
|
+
}
|
4461
|
+
});
|
4462
|
+
});
|
4463
|
+
});
|
4464
|
+
async function prepublish() {
|
4465
|
+
const {
|
4466
|
+
JIEK_PUBLISH_OUTDIR: outdirEnv,
|
4467
|
+
JIEK_PUBLISH_BUMPER: bumperEnv
|
4468
|
+
} = process.env;
|
4469
|
+
const outdir = outdirEnv ? JSON.parse(outdirEnv) : "dist";
|
4470
|
+
const bumper = bumperEnv ? JSON.parse(bumperEnv) : false;
|
4471
|
+
const generateNewManifest = (dir, manifest) => {
|
4435
4472
|
const { name, type, exports: entrypoints = {} } = manifest;
|
4436
4473
|
if (!name) {
|
4437
4474
|
throw new Error(`package.json in ${dir} must have a name field`);
|
@@ -4452,35 +4489,38 @@ program.command("publish").aliases(["pub", "p"]).option("-b, --bumper <bumper>",
|
|
4452
4489
|
...resolvedEntrypoints,
|
4453
4490
|
...exports
|
4454
4491
|
};
|
4455
|
-
return [
|
4456
|
-
}
|
4457
|
-
const
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
}
|
4463
|
-
for (const [dir, manifest, resolvedOutdir] of manifests) {
|
4464
|
-
const oldJSONString = fs.readFileSync(path.join(dir, "package.json"), "utf-8");
|
4465
|
-
const oldJSON = JSON.parse(oldJSONString) ?? "0.0.0";
|
4466
|
-
const newVersion = bumper ? bump(oldJSON.version, bumper) : oldJSON.version;
|
4467
|
-
const { indent = " " } = detectIndent(oldJSONString);
|
4468
|
-
const formattingOptions = {
|
4469
|
-
tabSize: indent.length,
|
4470
|
-
insertSpaces: true
|
4471
|
-
};
|
4492
|
+
return [newManifest, resolvedOutdir];
|
4493
|
+
};
|
4494
|
+
const generateNewPackageJSONString = ({
|
4495
|
+
oldJSONString,
|
4496
|
+
oldJSON,
|
4497
|
+
manifest,
|
4498
|
+
formattingOptions
|
4499
|
+
}) => {
|
4472
4500
|
let newJSONString = oldJSONString;
|
4473
4501
|
newJSONString = applyEdits(
|
4474
4502
|
newJSONString,
|
4475
4503
|
modify(
|
4476
4504
|
newJSONString,
|
4477
|
-
["
|
4478
|
-
|
4505
|
+
["publishConfig", "typesVersions"],
|
4506
|
+
{
|
4507
|
+
"<5.0": {
|
4508
|
+
"*": [
|
4509
|
+
"*",
|
4510
|
+
`./*`,
|
4511
|
+
`./*/index.d.ts`,
|
4512
|
+
`./*/index.d.mts`,
|
4513
|
+
`./*/index.d.cts`
|
4514
|
+
]
|
4515
|
+
}
|
4516
|
+
},
|
4479
4517
|
{ formattingOptions }
|
4480
4518
|
)
|
4481
4519
|
);
|
4482
|
-
for (const [key,
|
4483
|
-
if (
|
4520
|
+
for (const [key, value] of Object.entries(manifest)) {
|
4521
|
+
if (key === "version")
|
4522
|
+
continue;
|
4523
|
+
if (JSON.stringify(value) === JSON.stringify(oldJSON[key]))
|
4484
4524
|
continue;
|
4485
4525
|
if (key !== "exports") {
|
4486
4526
|
newJSONString = applyEdits(
|
@@ -4488,12 +4528,12 @@ program.command("publish").aliases(["pub", "p"]).option("-b, --bumper <bumper>",
|
|
4488
4528
|
modify(
|
4489
4529
|
newJSONString,
|
4490
4530
|
["publishConfig", key],
|
4491
|
-
|
4531
|
+
value,
|
4492
4532
|
{ formattingOptions }
|
4493
4533
|
)
|
4494
4534
|
);
|
4495
4535
|
} else {
|
4496
|
-
const exports =
|
4536
|
+
const exports = value;
|
4497
4537
|
for (const [k, v] of Object.entries(exports)) {
|
4498
4538
|
newJSONString = applyEdits(
|
4499
4539
|
newJSONString,
|
@@ -4535,46 +4575,180 @@ program.command("publish").aliases(["pub", "p"]).option("-b, --bumper <bumper>",
|
|
4535
4575
|
}
|
4536
4576
|
}
|
4537
4577
|
}
|
4538
|
-
|
4539
|
-
|
4540
|
-
|
4541
|
-
|
4542
|
-
|
4543
|
-
{
|
4544
|
-
"<5.0": {
|
4545
|
-
"*": [
|
4546
|
-
"*",
|
4547
|
-
`${resolvedOutdir}/*`,
|
4548
|
-
`${resolvedOutdir}/*/index.d.ts`,
|
4549
|
-
`${resolvedOutdir}/*/index.d.mts`,
|
4550
|
-
`${resolvedOutdir}/*/index.d.cts`
|
4551
|
-
]
|
4552
|
-
}
|
4578
|
+
if (oldJSON["peerDependencies"]) {
|
4579
|
+
const peerDependenciesMeta = Object.keys(oldJSON["peerDependencies"]).reduce(
|
4580
|
+
(acc, key) => {
|
4581
|
+
acc[key] = { optional: true };
|
4582
|
+
return acc;
|
4553
4583
|
},
|
4554
|
-
{
|
4555
|
-
)
|
4584
|
+
{}
|
4585
|
+
);
|
4586
|
+
newJSONString = applyEdits(
|
4587
|
+
newJSONString,
|
4588
|
+
modify(
|
4589
|
+
newJSONString,
|
4590
|
+
["peerDependenciesMeta"],
|
4591
|
+
peerDependenciesMeta,
|
4592
|
+
{ formattingOptions }
|
4593
|
+
)
|
4594
|
+
);
|
4595
|
+
}
|
4596
|
+
if (oldJSON["files"]) {
|
4597
|
+
newJSONString = applyEdits(
|
4598
|
+
newJSONString,
|
4599
|
+
modify(
|
4600
|
+
newJSONString,
|
4601
|
+
["files"],
|
4602
|
+
void 0,
|
4603
|
+
{ formattingOptions }
|
4604
|
+
)
|
4605
|
+
);
|
4606
|
+
}
|
4607
|
+
return newJSONString;
|
4608
|
+
};
|
4609
|
+
await forEachSelectedProjectsGraphEntries((dir, originalManifest) => {
|
4610
|
+
const [manifest, resolvedOutdir] = generateNewManifest(dir, originalManifest);
|
4611
|
+
const resolveByDir = (...paths) => path.resolve(dir, ...paths);
|
4612
|
+
const oldJSONString = fs.readFileSync(resolveByDir("package.json"), "utf-8");
|
4613
|
+
const oldJSON = JSON.parse(oldJSONString) ?? "0.0.0";
|
4614
|
+
if (typeof oldJSON.version !== "string") {
|
4615
|
+
throw new Error(`${dir}/package.json must have a version field with a string value`);
|
4616
|
+
}
|
4617
|
+
const { indent = " " } = detectIndent(oldJSONString);
|
4618
|
+
const formattingOptions = {
|
4619
|
+
tabSize: indent.length,
|
4620
|
+
insertSpaces: true
|
4621
|
+
};
|
4622
|
+
const newVersion = bumper ? bump(oldJSON.version, bumper) : oldJSON.version;
|
4623
|
+
const modifyVersionPackageJSON = applyEdits(
|
4624
|
+
oldJSONString,
|
4625
|
+
modify(oldJSONString, ["version"], newVersion, { formattingOptions })
|
4556
4626
|
);
|
4557
|
-
|
4558
|
-
|
4559
|
-
|
4560
|
-
|
4561
|
-
|
4627
|
+
const newJSONString = generateNewPackageJSONString({
|
4628
|
+
oldJSONString: modifyVersionPackageJSON,
|
4629
|
+
oldJSON: {
|
4630
|
+
...oldJSON,
|
4631
|
+
version: newVersion
|
4632
|
+
},
|
4633
|
+
manifest,
|
4634
|
+
formattingOptions
|
4635
|
+
});
|
4636
|
+
const withPublishConfigDirectoryOldJSONString = applyEdits(
|
4637
|
+
modifyVersionPackageJSON,
|
4638
|
+
modify(modifyVersionPackageJSON, ["publishConfig", "directory"], resolvedOutdir, { formattingOptions })
|
4639
|
+
);
|
4640
|
+
if (!fs.existsSync(resolveByDir(resolvedOutdir))) {
|
4641
|
+
fs.mkdirSync(resolveByDir(resolvedOutdir));
|
4642
|
+
}
|
4643
|
+
const jiekTempDir = resolveByDir("node_modules/.jiek/.tmp");
|
4644
|
+
if (!fs.existsSync(resolveByDir(jiekTempDir))) {
|
4645
|
+
fs.mkdirSync(resolveByDir(jiekTempDir), { recursive: true });
|
4646
|
+
}
|
4647
|
+
fs.writeFileSync(resolveByDir(resolvedOutdir, "package.json"), newJSONString);
|
4648
|
+
fs.writeFileSync(resolveByDir(jiekTempDir, "package.json"), modifyVersionPackageJSON);
|
4649
|
+
fs.writeFileSync(resolveByDir("package.json"), withPublishConfigDirectoryOldJSONString);
|
4650
|
+
const allBuildFiles = fs.readdirSync(resolveByDir(resolvedOutdir), { recursive: true }).filter((file) => typeof file === "string").filter((file) => file !== "package.json");
|
4651
|
+
for (const file of allBuildFiles) {
|
4652
|
+
const filepath = resolveByDir(resolvedOutdir, file);
|
4653
|
+
const stat = fs.statSync(filepath);
|
4654
|
+
if (stat.isDirectory()) {
|
4655
|
+
const existsIndexFile = allBuildFiles.some(
|
4656
|
+
(f) => [
|
4657
|
+
path.join(file, "index.js"),
|
4658
|
+
path.join(file, "index.mjs"),
|
4659
|
+
path.join(file, "index.cjs")
|
4660
|
+
].includes(f)
|
4661
|
+
);
|
4662
|
+
if (existsIndexFile) {
|
4663
|
+
const cpDistPath = resolveByDir(resolvedOutdir, resolvedOutdir, file);
|
4664
|
+
const pkgJSONPath = resolveByDir(resolvedOutdir, file, "package.json");
|
4665
|
+
const relativePath = path.relative(filepath, cpDistPath);
|
4666
|
+
const { type } = manifest;
|
4667
|
+
fs.writeFileSync(
|
4668
|
+
pkgJSONPath,
|
4669
|
+
JSON.stringify({
|
4670
|
+
type,
|
4671
|
+
main: [relativePath, `index.${type === "module" ? "c" : ""}js`].join("/"),
|
4672
|
+
module: [relativePath, `index.${type === "module" ? "" : "m"}js`].join("/")
|
4673
|
+
})
|
4674
|
+
);
|
4675
|
+
}
|
4676
|
+
}
|
4677
|
+
}
|
4678
|
+
fs.mkdirSync(resolveByDir(resolvedOutdir, resolvedOutdir));
|
4679
|
+
for (const file of allBuildFiles) {
|
4680
|
+
const filepath = resolveByDir(resolvedOutdir, file);
|
4681
|
+
const newFilepath = resolveByDir(resolvedOutdir, resolvedOutdir, file);
|
4682
|
+
const stat = fs.statSync(filepath);
|
4683
|
+
if (stat.isDirectory()) {
|
4684
|
+
fs.mkdirSync(newFilepath, { recursive: true });
|
4562
4685
|
continue;
|
4563
4686
|
}
|
4564
|
-
|
4565
|
-
|
4566
|
-
|
4687
|
+
if (stat.isFile()) {
|
4688
|
+
fs.cpSync(filepath, newFilepath);
|
4689
|
+
fs.rmSync(filepath);
|
4690
|
+
}
|
4691
|
+
}
|
4692
|
+
if (oldJSON.files) {
|
4693
|
+
if (!Array.isArray(oldJSON.files)) {
|
4694
|
+
throw new Error(`${dir}/package.json files field must be an array`);
|
4695
|
+
}
|
4696
|
+
if (Array.isArray(oldJSON.files) && oldJSON.files.every((file) => typeof file !== "string")) {
|
4697
|
+
throw new Error(`${dir}/package.json files field must be an array of string`);
|
4567
4698
|
}
|
4568
|
-
childProcess.execSync(args.join(" "), {
|
4569
|
-
cwd: dir,
|
4570
|
-
stdio: "inherit"
|
4571
|
-
});
|
4572
|
-
const modifyVersionPackageJSON = applyEdits(oldJSONString, modify(oldJSONString, ["version"], newVersion, {}));
|
4573
|
-
fs.writeFileSync(path.join(dir, "package.json.bak"), modifyVersionPackageJSON);
|
4574
|
-
} finally {
|
4575
|
-
fs.unlinkSync(path.join(dir, "package.json"));
|
4576
|
-
fs.renameSync(path.join(dir, "package.json.bak"), path.join(dir, "package.json"));
|
4577
4699
|
}
|
4700
|
+
const resolvedOutdirAbs = resolveByDir(resolvedOutdir);
|
4701
|
+
const files = (oldJSON.files ?? fs.readdirSync(resolveByDir("."))).filter((file) => file === "node_modules" || resolveByDir(file) !== resolvedOutdirAbs);
|
4702
|
+
for (const file of files) {
|
4703
|
+
const path2 = resolveByDir(file);
|
4704
|
+
try {
|
4705
|
+
const stat = fs.statSync(path2);
|
4706
|
+
if (stat.isDirectory()) {
|
4707
|
+
fs.cpSync(path2, resolveByDir(resolvedOutdir, file), { recursive: true });
|
4708
|
+
continue;
|
4709
|
+
}
|
4710
|
+
if (stat.isFile()) {
|
4711
|
+
fs.cpSync(path2, resolveByDir(resolvedOutdir, file));
|
4712
|
+
continue;
|
4713
|
+
}
|
4714
|
+
} catch (e) {
|
4715
|
+
console.warn(String(e));
|
4716
|
+
continue;
|
4717
|
+
}
|
4718
|
+
throw new Error(`file type of ${path2} is not supported`);
|
4719
|
+
}
|
4720
|
+
});
|
4721
|
+
}
|
4722
|
+
async function postpublish() {
|
4723
|
+
await forEachSelectedProjectsGraphEntries((dir) => {
|
4724
|
+
const jiekTempDir = path.resolve(dir, "node_modules/.jiek/.tmp");
|
4725
|
+
const packageJSON = path.resolve(dir, "package.json");
|
4726
|
+
const jiekTempPackageJSON = path.resolve(jiekTempDir, "package.json");
|
4727
|
+
if (fs.existsSync(jiekTempPackageJSON)) {
|
4728
|
+
fs.copyFileSync(jiekTempPackageJSON, packageJSON);
|
4729
|
+
fs.rmSync(jiekTempPackageJSON);
|
4730
|
+
console.log(`${dir}/package.json has been restored`);
|
4731
|
+
} else {
|
4732
|
+
throw new Error(
|
4733
|
+
`jiek temp \`${dir}/package.json\` not found, please confirm the jiek pre-publish command has been executed`
|
4734
|
+
);
|
4735
|
+
}
|
4736
|
+
});
|
4737
|
+
}
|
4738
|
+
program.action(async () => {
|
4739
|
+
const {
|
4740
|
+
npm_lifecycle_event: NPM_LIFECYCLE_EVENT
|
4741
|
+
} = process.env;
|
4742
|
+
switch (NPM_LIFECYCLE_EVENT) {
|
4743
|
+
case "prepublish":
|
4744
|
+
await prepublish();
|
4745
|
+
break;
|
4746
|
+
case "postpublish":
|
4747
|
+
await postpublish();
|
4748
|
+
break;
|
4749
|
+
default:
|
4750
|
+
program.help();
|
4578
4751
|
}
|
4579
|
-
actionDone();
|
4580
4752
|
});
|
4753
|
+
program.command("prepublish").action(prepublish);
|
4754
|
+
program.command("postpublish").action(postpublish);
|
package/dist/rollup/index.cjs
CHANGED
@@ -4503,7 +4503,7 @@ const {
|
|
4503
4503
|
JIEK_WITHOUT_DTS,
|
4504
4504
|
JIEK_WITHOUT_MINIFY,
|
4505
4505
|
JIEK_MINIFY_TYPE,
|
4506
|
-
|
4506
|
+
JIEK_CLEAN,
|
4507
4507
|
JIEK_ONLY_MINIFY,
|
4508
4508
|
JIEK_TSCONFIG,
|
4509
4509
|
JIEK_DTSCONFIG
|
@@ -4527,7 +4527,7 @@ const WITHOUT_JS = JIEK_WITHOUT_JS === "true";
|
|
4527
4527
|
const WITHOUT_DTS = JIEK_WITHOUT_DTS === "true";
|
4528
4528
|
const WITHOUT_MINIFY = JIEK_WITHOUT_MINIFY === "true";
|
4529
4529
|
const ONLY_MINIFY = JIEK_ONLY_MINIFY === "true";
|
4530
|
-
const CLEAN =
|
4530
|
+
const CLEAN = JIEK_CLEAN === "true";
|
4531
4531
|
const MINIFY_DEFAULT_VALUE = WITHOUT_MINIFY ? false : ONLY_MINIFY ? "only-minify" : true;
|
4532
4532
|
const BUILDER_OPTIONS = {
|
4533
4533
|
type: JIEK_BUILDER ?? "esbuild"
|
package/dist/rollup/index.js
CHANGED
@@ -4490,7 +4490,7 @@ const {
|
|
4490
4490
|
JIEK_WITHOUT_DTS,
|
4491
4491
|
JIEK_WITHOUT_MINIFY,
|
4492
4492
|
JIEK_MINIFY_TYPE,
|
4493
|
-
|
4493
|
+
JIEK_CLEAN,
|
4494
4494
|
JIEK_ONLY_MINIFY,
|
4495
4495
|
JIEK_TSCONFIG,
|
4496
4496
|
JIEK_DTSCONFIG
|
@@ -4514,7 +4514,7 @@ const WITHOUT_JS = JIEK_WITHOUT_JS === "true";
|
|
4514
4514
|
const WITHOUT_DTS = JIEK_WITHOUT_DTS === "true";
|
4515
4515
|
const WITHOUT_MINIFY = JIEK_WITHOUT_MINIFY === "true";
|
4516
4516
|
const ONLY_MINIFY = JIEK_ONLY_MINIFY === "true";
|
4517
|
-
const CLEAN =
|
4517
|
+
const CLEAN = JIEK_CLEAN === "true";
|
4518
4518
|
const MINIFY_DEFAULT_VALUE = WITHOUT_MINIFY ? false : ONLY_MINIFY ? "only-minify" : true;
|
4519
4519
|
const BUILDER_OPTIONS = {
|
4520
4520
|
type: JIEK_BUILDER ?? "esbuild"
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "jiek",
|
3
3
|
"type": "module",
|
4
|
-
"version": "2.0
|
4
|
+
"version": "2.1.0",
|
5
5
|
"description": "A lightweight toolkit for compiling and managing libraries based on `package.json` metadata and suitable for `Monorepo`.",
|
6
6
|
"author": "YiJie <yijie4188@gmail.com>",
|
7
7
|
"repository": {
|
@@ -16,13 +16,6 @@
|
|
16
16
|
"jiek-build": "bin/jiek-build.js",
|
17
17
|
"jb": "bin/jiek-build.js"
|
18
18
|
},
|
19
|
-
"files": [
|
20
|
-
"dist",
|
21
|
-
"src",
|
22
|
-
"bin",
|
23
|
-
"LICENSE",
|
24
|
-
"README.md"
|
25
|
-
],
|
26
19
|
"exports": {
|
27
20
|
"./package.json": "./package.json",
|
28
21
|
".": {
|
@@ -75,6 +68,23 @@
|
|
75
68
|
"rollup-plugin-swc3": "^0.12.1",
|
76
69
|
"typescript": "^4.0.0||^5.0.0"
|
77
70
|
},
|
71
|
+
"devDependencies": {
|
72
|
+
"@npm/types": "^1.0.2",
|
73
|
+
"@pnpm/filter-workspace-packages": "^7.2.13",
|
74
|
+
"@pnpm/workspace.pkgs-graph": "^2.0.15",
|
75
|
+
"@rollup/plugin-terser": "^0.4.4",
|
76
|
+
"@types/cli-progress": "^3.11.5",
|
77
|
+
"@types/inquirer": "^9.0.7",
|
78
|
+
"@types/js-yaml": "^4.0.9",
|
79
|
+
"@types/micromatch": "^4.0.6",
|
80
|
+
"esbuild-register": "^3.5.0",
|
81
|
+
"micromatch": "^4.0.5",
|
82
|
+
"node-sass": "^9.0.0",
|
83
|
+
"postcss": "^8.4.47",
|
84
|
+
"rollup-plugin-postcss": "^4.0.2",
|
85
|
+
"rollup-plugin-esbuild": "^6.1.0",
|
86
|
+
"rollup-plugin-swc3": "^0.12.1"
|
87
|
+
},
|
78
88
|
"peerDependenciesMeta": {
|
79
89
|
"@rollup/plugin-terser": {
|
80
90
|
"optional": true
|
@@ -101,37 +111,20 @@
|
|
101
111
|
"optional": true
|
102
112
|
}
|
103
113
|
},
|
104
|
-
"devDependencies": {
|
105
|
-
"@npm/types": "^1.0.2",
|
106
|
-
"@pnpm/filter-workspace-packages": "^7.2.13",
|
107
|
-
"@pnpm/workspace.pkgs-graph": "^2.0.15",
|
108
|
-
"@rollup/plugin-terser": "^0.4.4",
|
109
|
-
"@types/cli-progress": "^3.11.5",
|
110
|
-
"@types/inquirer": "^9.0.7",
|
111
|
-
"@types/js-yaml": "^4.0.9",
|
112
|
-
"@types/micromatch": "^4.0.6",
|
113
|
-
"esbuild-register": "^3.5.0",
|
114
|
-
"micromatch": "^4.0.5",
|
115
|
-
"node-sass": "^9.0.0",
|
116
|
-
"postcss": "^8.4.47",
|
117
|
-
"rollup-plugin-postcss": "^4.0.2",
|
118
|
-
"rollup-plugin-esbuild": "^6.1.0",
|
119
|
-
"rollup-plugin-swc3": "^0.12.1"
|
120
|
-
},
|
121
114
|
"scripts": {
|
122
|
-
"prepublish": "jb
|
115
|
+
"prepublish": "jb -nm && jk"
|
123
116
|
},
|
124
|
-
"main": "./dist/index.cjs",
|
125
|
-
"module": "./dist/index.js",
|
126
117
|
"typesVersions": {
|
127
118
|
"<5.0": {
|
128
119
|
"*": [
|
129
120
|
"*",
|
130
|
-
"
|
131
|
-
"
|
132
|
-
"
|
133
|
-
"
|
121
|
+
"./*",
|
122
|
+
"./*/index.d.ts",
|
123
|
+
"./*/index.d.mts",
|
124
|
+
"./*/index.d.cts"
|
134
125
|
]
|
135
126
|
}
|
136
|
-
}
|
127
|
+
},
|
128
|
+
"main": "./dist/index.cjs",
|
129
|
+
"module": "./dist/index.js"
|
137
130
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"type":"module","main":"../dist/rollup/index.cjs","module":"../dist/rollup/index.js"}
|
package/src/commands/build.ts
CHANGED
@@ -41,7 +41,7 @@ const isDefault = process.env.JIEK_IS_ONLY_BUILD === 'true'
|
|
41
41
|
|
42
42
|
const description = `
|
43
43
|
Build the package according to the 'exports' field from the package.json.
|
44
|
-
If you want to
|
44
|
+
If you want to through the options to the \`rollup\` command, you can pass the options after '--'.
|
45
45
|
${isDefault ? 'This command is the default command.' : ''}
|
46
46
|
`.trim()
|
47
47
|
|
@@ -139,24 +139,19 @@ If you pass the --entries option, it will merge into the entries of the command.
|
|
139
139
|
`.trim()
|
140
140
|
|
141
141
|
const command = isDefault
|
142
|
-
?
|
143
|
-
|
144
|
-
|
142
|
+
? (() => {
|
143
|
+
const c = program
|
144
|
+
.name('jb/jiek-build')
|
145
|
+
.helpCommand(false)
|
146
|
+
if (IS_WORKSPACE) {
|
147
|
+
c.argument('[filters]', buildFilterDescription)
|
148
|
+
} else {
|
149
|
+
c.argument('[entries]', buildEntriesDescription)
|
150
|
+
}
|
151
|
+
return c
|
152
|
+
})()
|
145
153
|
: program
|
146
|
-
|
147
|
-
if (IS_WORKSPACE) {
|
148
|
-
if (isDefault) {
|
149
|
-
command.argument('[filters]', buildFilterDescription)
|
150
|
-
} else {
|
151
|
-
command.command('build [filters]')
|
152
|
-
}
|
153
|
-
} else {
|
154
|
-
if (isDefault) {
|
155
|
-
command.argument('[entries]', buildEntriesDescription)
|
156
|
-
} else {
|
157
|
-
command.command('build [entries]')
|
158
|
-
}
|
159
|
-
}
|
154
|
+
.command(`build [${IS_WORKSPACE ? 'filters' : 'entries'}]`)
|
160
155
|
|
161
156
|
command
|
162
157
|
.description(description)
|