feat(cli): add libc filed in native package.json

This commit is contained in:
LongYinan 2022-03-06 22:06:13 +08:00
parent 71f3c0ef7e
commit ee0279e540

View file

@ -40,33 +40,40 @@ export class CreateNpmDirCommand extends Command {
const binaryFileName = `${binaryName}.${platformDetail.platformArchABI}.node` const binaryFileName = `${binaryName}.${platformDetail.platformArchABI}.node`
const targetPackageJson = join(targetDir, 'package.json') const targetPackageJson = join(targetDir, 'package.json')
debug(`Write file [${chalk.yellowBright(targetPackageJson)}]`) debug(`Write file [${chalk.yellowBright(targetPackageJson)}]`)
const packageJson: {
name: string
libc?: string[]
} = {
name: `${packageName}-${platformDetail.platformArchABI}`,
version,
os: [platformDetail.platform],
cpu: [platformDetail.arch],
main: binaryFileName,
files: [binaryFileName],
...pick(
content,
'description',
'keywords',
'author',
'authors',
'homepage',
'license',
'engines',
'publishConfig',
'repository',
'bugs',
),
}
// Only works with yarn 3.1+
// https://github.com/yarnpkg/berry/pull/3981
if (platformDetail.abi === 'gnu') {
packageJson.libc = ['glibc']
} else if (platformDetail.abi === 'musl') {
packageJson.libc = ['musl']
}
await writeFileAsync( await writeFileAsync(
targetPackageJson, targetPackageJson,
JSON.stringify( JSON.stringify(packageJson, null, 2),
{
name: `${packageName}-${platformDetail.platformArchABI}`,
version,
os: [platformDetail.platform],
cpu: [platformDetail.arch],
main: binaryFileName,
files: [binaryFileName],
...pick(
content,
'description',
'keywords',
'author',
'authors',
'homepage',
'license',
'engines',
'publishConfig',
'repository',
'bugs',
),
},
null,
2,
),
) )
const targetReadme = join(targetDir, 'README.md') const targetReadme = join(targetDir, 'README.md')
debug(`Write target README.md [${chalk.yellowBright(targetReadme)}]`) debug(`Write target README.md [${chalk.yellowBright(targetReadme)}]`)