UNPKG

infly-libs

Version:

工具组件库

49 lines (44 loc) 1.41 kB
const fs = require("fs"); const path = require("path"); /** * 覆盖写入构建脚本 * @param {String} filePath - 覆盖文件路径 * @param {Array | Object} scriptsList - 写入脚本配置 * @param {String} 更新字段值 */ function scriptWrite(filePath, scriptsList, updateKey = "scripts") { const pkg = JSON.parse(fs.readFileSync(filePath)); pkg[updateKey] = pkg[updateKey] || {}; if (Array.isArray(scriptsList)) { scriptsList.forEach((item) => { pkg[updateKey][item.key] = item.value; }); } else if (typeof scriptsList === "object") { pkg[updateKey] = scriptsList; } fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2)); } /** * 获取文件绝对路径 * @param {String} filePath - 文件路径 * @returns */ function targetProjectFileResolve(filePath) { // 初始脚本自动执行路径会自动读取node_modules const projectRoot = process.cwd(); const absoluteProjectRoot = projectRoot.replace(/\\node_modules.*$/g, ""); return path.resolve(absoluteProjectRoot, filePath); } /** * 获取文件绝对路径 * @param {String} filePath - 文件路径 * @returns */ function currentProjectFileResolve(filePath) { return path.join(__dirname, filePath); } module.exports = { scriptWrite, targetProjectFileResolve, currentProjectFileResolve };