@next-core/build-next-bricks 1.6.0 → 1.7.1

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.
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import path from "node:path";
3
3
  import { existsSync } from "node:fs";
4
+ import { mkdir, rm, writeFile } from "node:fs/promises";
4
5
  import build from "../src/build.js";
5
6
  import scanBricks from "../src/scanBricks.js";
6
7
  import generatePkgBuild from "../src/generatePkgBuild.js";
@@ -12,6 +13,9 @@ import generatePkgBuild from "../src/generatePkgBuild.js";
12
13
 
13
14
  /** @typedef {import("@next-core/build-next-bricks").BuildNextBricksConfig} BuildNextBricksConfig */
14
15
 
16
+ const manifestOnly = process.argv.includes("--manifest-only");
17
+ const watch = process.argv.includes("--watch");
18
+
15
19
  try {
16
20
  const startTime = Date.now();
17
21
 
@@ -37,43 +41,63 @@ try {
37
41
  ? `${scanBricksCost}ms`
38
42
  : `${(scanBricksCost / 1000).toFixed(2)}s`
39
43
  );
44
+ if (manifestOnly) {
45
+ const distDir = path.join(packageDir, "dist");
46
+ if (existsSync(distDir)) {
47
+ await rm(distDir, { recursive: true });
48
+ }
49
+ await mkdir(distDir);
50
+ await writeFile(
51
+ path.join(distDir, "manifest.json"),
52
+ JSON.stringify(config.manifest, null, 2)
53
+ );
54
+ }
40
55
  }
41
56
  }
42
57
 
43
- const compiler = await build(
44
- configList.length === 1 ? configList[0] : configList
45
- );
46
-
47
- const watch = process.argv.includes("--watch");
48
-
49
- if (watch) {
50
- compiler.watch({}, (err, stats) => {
51
- if (err || stats.hasErrors()) {
52
- console.error("Failed to build bricks:");
53
- console.error(err || stats.toString());
54
- } else {
55
- console.log("Build bricks done in watch mode");
56
- }
57
- });
58
+ if (manifestOnly) {
59
+ console.log(
60
+ `Build bricks manifest done in ${(
61
+ (Date.now() - startTime) /
62
+ 1000
63
+ ).toFixed(2)}s`
64
+ );
58
65
  } else {
59
- await new Promise((resolve, reject) => {
60
- compiler.run((err, stats) => {
66
+ const compiler = await build(
67
+ configList.length === 1 ? configList[0] : configList
68
+ );
69
+
70
+ if (watch) {
71
+ compiler.watch({}, (err, stats) => {
61
72
  if (err || stats.hasErrors()) {
62
73
  console.error("Failed to build bricks:");
63
- reject(err || stats.toString());
74
+ console.error(err || stats.toString());
64
75
  } else {
65
- resolve();
76
+ console.log("Build bricks done in watch mode");
66
77
  }
67
78
  });
68
- });
79
+ } else {
80
+ await new Promise((resolve, reject) => {
81
+ compiler.run((err, stats) => {
82
+ if (err || stats.hasErrors()) {
83
+ console.error("Failed to build bricks:");
84
+ reject(err || stats.toString());
85
+ } else {
86
+ resolve();
87
+ }
88
+ });
89
+ });
69
90
 
70
- if (configList.some((config) => !config.type || config.type === "bricks")) {
71
- await generatePkgBuild(packageDir);
72
- }
91
+ if (
92
+ configList.some((config) => !config.type || config.type === "bricks")
93
+ ) {
94
+ await generatePkgBuild(packageDir);
95
+ }
73
96
 
74
- console.log(
75
- `Build bricks done in ${((Date.now() - startTime) / 1000).toFixed(2)}s`
76
- );
97
+ console.log(
98
+ `Build bricks done in ${((Date.now() - startTime) / 1000).toFixed(2)}s`
99
+ );
100
+ }
77
101
  }
78
102
  } catch (e) {
79
103
  console.error(e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/build-next-bricks",
3
- "version": "1.6.0",
3
+ "version": "1.7.1",
4
4
  "description": "Build next bricks",
5
5
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/build-next-bricks",
6
6
  "license": "GPL-3.0",
@@ -51,5 +51,5 @@
51
51
  "devDependencies": {
52
52
  "@next-core/brick-manifest": "^0.1.0"
53
53
  },
54
- "gitHead": "1f4fb165de7f1f1a9dd2de5586748b5d08d21d7c"
54
+ "gitHead": "b6ca0aa67aae992ed7e6866bc1a9bc384cdb8f7b"
55
55
  }
package/src/scanBricks.js CHANGED
@@ -449,6 +449,10 @@ export default async function scanBricks(packageDir) {
449
449
  * @param {string | undefined} overrideImport
450
450
  */
451
451
  async function scanByImport([dirname, files], importFrom, overrideImport) {
452
+ // Ignore missing imports (maybe auto generated)
453
+ if (!existsSync(dirname)) {
454
+ return;
455
+ }
452
456
  const dirents = await readdir(dirname, { withFileTypes: true });
453
457
  const possibleFilenames = [...files].map(
454
458
  (filename) => new RegExp(`${escapeRegExp(filename)}\\.[tj]sx?$`)