grommet
Version:
focus on the essential experience
1 lines • 1.47 kB
JavaScript
import path from"path";import del from"del";import fs from"fs";import cp from"child_process";import tarball from"tarball-extract";const packageJSON=path.resolve(__dirname,"../package.json"),packageJSONAsString=fs.readFileSync(packageJSON),json=JSON.parse(packageJSONAsString);json.dependencies&&(json.bundledDependencies=Object.keys(json.dependencies),fs.writeFileSync(packageJSON,JSON.stringify(json,null,2)));try{cp.exec("npm pack",(e=>{if(e)throw e;const n={name:json.name,version:json.version,dependencies:{licenseNotFound:[]}},s=`${json.name}-${json.version}.tgz`;tarball.extractTarball(s,"./tmp",(e=>{if(e)throw e;fs.renameSync(path.resolve(__dirname,`../${s}`),path.resolve(__dirname,`../${json.name}-${json.version}-src-with-dependecies.tgz`)),fs.readdirSync(path.resolve(__dirname,"../tmp/package/node_modules")).forEach((e=>{const s=path.resolve(__dirname,`../node_modules/${e}/package.json`);if(fs.existsSync(s)){const a=fs.readFileSync(s),r=JSON.parse(a);let i=r.license;!i&&r.licenses&&(i=r.licenses[0]),i?i.type?n.dependencies[e]=i.type:n.dependencies[e]=i:n.dependencies.licenseNotFound.push(e)}}));const a=path.resolve(__dirname,`../${json.name}-${json.version}-licenses.json`);fs.writeFileSync(a,JSON.stringify(n,null,2)),fs.writeFileSync(packageJSON,`${JSON.stringify(JSON.parse(packageJSONAsString),null,2)}\n`),del.sync(["./tmp"])}))}))}catch(e){console.log(e),fs.writeFileSync(packageJSON,`${JSON.stringify(JSON.parse(packageJSONAsString),null,2)}\n`)}