UNPKG

@hyext/builder-neorn

Version:

neo react-native builder for hyext

37 lines (36 loc) 1.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const child_process_1 = require("child_process"); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); function installDep(projectRoot, dependencies) { // 必须先删除 package-lock.json, 否则: // 如果 package-lock.json 里指定了不同版本的依赖, 安装 sdk 时会导致 sdk 的依赖被安装到sdk 的文件夹中, 结果是业务代码引用的库跟 sdk 的支持的库不一样 // 比如 package-lock.json 指定了 react@16.0.0 fs_extra_1.default.removeSync(path_1.default.resolve(projectRoot, 'package-lock.json')); return new Promise((resolve, reject) => { const installation = child_process_1.spawn('npm', [ 'install', '--prefer-offline', '--no-save', '--no-audit', '--no-fund', '--production', ...Object.entries(dependencies).map(pair => pair.join('@')), ], { cwd: projectRoot, stdio: 'inherit', shell: process.platform === 'win32', }); installation.on('close', code => { if (code === 0) { resolve(); } reject(`依赖安装失败, process code: ${code}`); }); }); } exports.default = installDep;