sdenv/utils/paths.js

25 lines
768 B
JavaScript

const path = require('path');
const fs = require('fs');
const appDirectory = (() => {
// 返回项目根目录
const plist = path.resolve(__dirname).split(path.sep);
while (!fs.existsSync(path.resolve(plist.join(path.sep), 'package.json'))) {
plist.pop();
if (plist.length === 0) return false;
}
return plist.join(path.sep);
})();
const resolveApp = (...relativePath) => path.resolve(appDirectory, ...relativePath);
module.exports = {
basePath: resolveApp('.'),
modulePath: resolveApp('node_modules'),
binPath: resolveApp('node_modules', '.bin/'),
package: resolveApp('package.json'),
resolve: resolveApp,
handlerPath: resolveApp('handler'),
configPath: resolveApp('config'),
configResolve: (...p) => resolveApp('config', ...p),
};