You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.0 KiB
85 lines
2.0 KiB
import esbuild from "esbuild"; |
|
import process from "process"; |
|
import builtins from 'builtin-modules'; |
|
import copyStaticFiles from 'esbuild-copy-static-files'; |
|
import { spawnSync } from 'child_process'; |
|
|
|
const banner = |
|
`/* |
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD |
|
if you want to view the source, please visit the github repository of this plugin |
|
*/ |
|
`; |
|
|
|
const prod = (process.argv[2] === 'production'); |
|
|
|
const packageName = process.env.npm_package_name || 'meld-encrypt'; |
|
const versionString = process.env.npm_package_version || '0.0.0'; |
|
|
|
const distDir = prod |
|
? `./dist/${packageName}-${versionString}/${packageName}` |
|
: `./Obsidian Encrypt - test-vault/.obsidian/plugins/${packageName}` |
|
; |
|
|
|
const ctx = await esbuild.context({ |
|
banner: { |
|
js: banner, |
|
}, |
|
entryPoints: ['src/main.ts'], |
|
bundle: true, |
|
external: [ |
|
'obsidian', |
|
'electron', |
|
'@codemirror/autocomplete', |
|
'@codemirror/collab', |
|
'@codemirror/commands', |
|
'@codemirror/language', |
|
'@codemirror/lint', |
|
'@codemirror/search', |
|
'@codemirror/state', |
|
'@codemirror/view', |
|
'@lezer/common', |
|
'@lezer/highlight', |
|
'@lezer/lr', |
|
...builtins], |
|
format: 'cjs', |
|
target: 'es2018', |
|
logLevel: "info", |
|
sourcemap: prod ? false : 'inline', |
|
treeShaking: true, |
|
minify: prod, |
|
outfile: `${distDir}/main.js`, |
|
plugins:[ |
|
copyStaticFiles({ |
|
src: './src/styles.css', |
|
dest: `${distDir}/styles.css`, |
|
}), |
|
copyStaticFiles({ |
|
src: './manifest.json', |
|
dest: `${distDir}/manifest.json`, |
|
}), |
|
] |
|
}); |
|
|
|
if (prod) { |
|
console.log(`Building production bundle ${packageName} v${versionString} ...`); |
|
const result = await ctx.rebuild(); |
|
if ( result.errors.length == 0 ){ |
|
console.log( `Zip it up to dist/${packageName}-${versionString}.zip` ); |
|
spawnSync( |
|
'tar', [ |
|
'-cav', |
|
'-f', `./dist/${packageName}-${versionString}.zip`, |
|
'-C', `./dist/${packageName}-${versionString}`, |
|
packageName |
|
], |
|
{ |
|
stdio: 'inherit' |
|
} |
|
); |
|
} |
|
process.exit(0); |
|
}else{ |
|
console.log('Building development bundle...'); |
|
await ctx.watch(); |
|
} |