import semver from 'semver' import { loadPkgJsonSync, loadNodeModulesPkgJsonSync } from '../package-json' import { loadBuildJsonSync } from './build-json' import log from '../log' export type ProjectType = 'app' | 'component' export function isConeApp(dir: string) { const buildJson = loadBuildJsonSync(dir) return ( buildJson && Array.isArray(buildJson.plugins) && buildJson.plugins.indexOf('build-plugin-cone-app') !== -1 ) } export function isConeComponent(dir: string) { const buildJson = loadBuildJsonSync(dir) return ( buildJson && Array.isArray(buildJson.plugins) && buildJson.plugins.indexOf('@alicd/build-plugin-cone-component') !== -1 ) } export function getProjectType(dir: string) { if (isConeComponent(dir)) { return 'tnpm' } if (isConeApp(dir)) { return 'assets' } return 'unknown' } export function isIce2(dir: string): boolean { const dep = 'build-plugin-react-app' const { devDependencies, dependencies } = loadPkgJsonSync(dir) const range = (devDependencies && devDependencies[dep]) || (dependencies && dependencies[dep]) || '' if (!range) { return false } const pkgJson = loadNodeModulesPkgJsonSync(dir, dep) const version = pkgJson.version || '' log.verbose('build-plugin-react-app', version) return !!version && semver.gte(version, '2.0.0') }