-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy path.devpkg.js
55 lines (49 loc) · 1.62 KB
/
.devpkg.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const path = require('path');
const fs = require('fs');
const config = require('./.devpkg.json');
const extraNodeModules = {};
const watchFolders = [];
const nodeModulesPaths = [];
if (config.enabled) {
Object.entries(config.packages).forEach(([pkgName, pkgConfig]) => {
const pkgPath = pkgConfig.path;
const useDevEntryPoint = pkgConfig.useDevEntryPoint ?? false;
const packageJsonPath = path.resolve(pkgPath, 'package.json');
const packageJson = require(packageJsonPath);
let entryPoint = '';
if (useDevEntryPoint && packageJson.devEntryPoint) {
entryPoint = packageJson.devEntryPoint;
} else if (packageJson.main) {
entryPoint = packageJson.main;
}
if (entryPoint) {
const fullEntryPath = path.resolve(__dirname, pkgPath, entryPoint);
if (fs.existsSync(fullEntryPath)) {
extraNodeModules[pkgName] = fullEntryPath;
const resolvedPkgPath = path.resolve(__dirname, pkgPath);
watchFolders.push(resolvedPkgPath);
nodeModulesPaths.push(resolvedPkgPath);
console.log(
'\x1b[32m%s\x1b[0m',
`✅ [devpkg] ${pkgName} -> ${extraNodeModules[pkgName]}`,
);
console.log('\x1b[34m%s\x1b[0m', `📝 ${packageJson.description}`);
} else {
console.error(
'\x1b[31m%s\x1b[0m',
`❌ [devpkg] Entry point not found for ${pkgName}: ${fullEntryPath}`,
);
}
} else {
console.error(
'\x1b[31m%s\x1b[0m',
`❌ [devpkg] No entry point specified for ${pkgName}`,
);
}
});
}
module.exports = {
extraNodeModules,
watchFolders,
nodeModulesPaths,
};