123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // 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, run } 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() {
- 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);
- }
- 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 run('npm', ['run', 'bootstrap']);
- // 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) {}
- }
- }
|