-
Notifications
You must be signed in to change notification settings - Fork 0
/
prepare-package.js
43 lines (34 loc) · 1.32 KB
/
prepare-package.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import fs from 'fs/promises'
import fsSync from 'fs'
import path from 'path'
const buildDir = '/dist'
async function createEsmModulePackageJson() {
console.log('Start prepare script')
const dirs = await fs.readdir(`.${buildDir}`)
dirs.forEach(dir => {
if (dir === 'esm') {
const packageJsonFile = path.join(`.${buildDir}`, dir, '/package.json')
if (!fsSync.existsSync(packageJsonFile)) {
fs.writeFile(
packageJsonFile,
new Uint8Array(Buffer.from('{"type": "module"}'))
)
}
}
})
const packageString = (await fs.readFile('./package.json')).toString()
const packageJson = JSON.parse(packageString)
delete packageJson.type
delete packageJson.files
delete packageJson.scripts
delete packageJson.devDependencies
packageJson.main = packageJson.main.replace(buildDir, '')
packageJson.types = packageJson.types.replace(buildDir, '')
packageJson.module = packageJson.module.replace(buildDir, '')
const newPackageJsonPath = path.join(`.${buildDir}`, '/package.json')
await fs.writeFile(newPackageJsonPath, JSON.stringify(packageJson))
await fs.copyFile('./readme.md', `.${buildDir}/readme.md`)
await fs.unlink(`.${buildDir}/index.d.cts`)
console.log('Prepare script finished')
}
createEsmModulePackageJson()