@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.
- package/bin/build-next-bricks.js +50 -26
- package/package.json +2 -2
- package/src/scanBricks.js +4 -0
package/bin/build-next-bricks.js
CHANGED
|
@@ -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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
60
|
-
|
|
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
|
-
|
|
74
|
+
console.error(err || stats.toString());
|
|
64
75
|
} else {
|
|
65
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
91
|
+
if (
|
|
92
|
+
configList.some((config) => !config.type || config.type === "bricks")
|
|
93
|
+
) {
|
|
94
|
+
await generatePkgBuild(packageDir);
|
|
95
|
+
}
|
|
73
96
|
|
|
74
|
-
|
|
75
|
-
|
|
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.
|
|
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": "
|
|
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?$`)
|