19 changed files with 167 additions and 254 deletions
@ -1,74 +0,0 @@ |
|||||
// Do you need to update the dependencies to prevent package.json from updating the dependencies, and no install after others get the code
|
|
||||
|
|
||||
import path from 'path'; |
|
||||
import fs from 'fs-extra'; |
|
||||
import { isEqual } from 'lodash'; |
|
||||
import { sh } from 'tasksfile'; |
|
||||
import { successConsole, errorConsole } from '../utils'; |
|
||||
|
|
||||
const resolve = (dir: string) => { |
|
||||
return path.resolve(process.cwd(), dir); |
|
||||
}; |
|
||||
|
|
||||
const reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/; |
|
||||
|
|
||||
let NEED_INSTALL = false; |
|
||||
|
|
||||
export async function runPreserve() { |
|
||||
// rc.6 fixed
|
|
||||
const cwdPath = process.cwd(); |
|
||||
if (reg.test(cwdPath)) { |
|
||||
errorConsole( |
|
||||
'Do not include Chinese, Japanese or Korean in the full path of the project directory, please modify the directory name and run again!' |
|
||||
); |
|
||||
errorConsole('项目目录全路径请勿包含中文、日文、韩文,请修改目录名后再次重新运行!'); |
|
||||
process.exit(1); |
|
||||
} |
|
||||
|
|
||||
await fs.mkdirp(resolve('build/.cache')); |
|
||||
function checkPkgUpdate() { |
|
||||
const pkg = require('../../package.json'); |
|
||||
const { dependencies, devDependencies } = pkg; |
|
||||
const depsFile = resolve('build/.cache/deps.json'); |
|
||||
if (!fs.pathExistsSync(depsFile)) { |
|
||||
NEED_INSTALL = true; |
|
||||
return; |
|
||||
} |
|
||||
const depsJson = require('../.cache/deps.json'); |
|
||||
|
|
||||
if (!isEqual(depsJson, { dependencies, devDependencies })) { |
|
||||
NEED_INSTALL = true; |
|
||||
} |
|
||||
} |
|
||||
checkPkgUpdate(); |
|
||||
if (NEED_INSTALL) { |
|
||||
// no error
|
|
||||
successConsole( |
|
||||
'A dependency change is detected, and the dependency is being installed to ensure that the dependency is consistent! (Tip: The project will be executed for the first time)!' |
|
||||
); |
|
||||
try { |
|
||||
await sh('npm run bootstrap ', { |
|
||||
async: true, |
|
||||
nopipe: true, |
|
||||
}); |
|
||||
|
|
||||
successConsole('Dependency installation is successful, start running the project!'); |
|
||||
|
|
||||
const pkg = require('../../package.json'); |
|
||||
const { dependencies, devDependencies } = pkg; |
|
||||
const depsFile = resolve('build/.cache/deps.json'); |
|
||||
const deps = { dependencies, devDependencies }; |
|
||||
if (!fs.pathExistsSync(depsFile)) { |
|
||||
fs.writeFileSync(depsFile, JSON.stringify(deps)); |
|
||||
} else { |
|
||||
const depsFile = resolve('build/.cache/deps.json'); |
|
||||
const depsJson = require('../.cache/deps.json'); |
|
||||
if (!isEqual(depsJson, deps)) { |
|
||||
fs.writeFileSync(depsFile, JSON.stringify(deps)); |
|
||||
} |
|
||||
} |
|
||||
} catch (error) {} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
runPreserve(); |
|
||||
Loading…
Reference in new issue