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.
67 lines
1.5 KiB
67 lines
1.5 KiB
import esbuild from "esbuild"; |
|
import process from "process"; |
|
import builtins from 'builtin-modules'; |
|
import copyStaticFiles from 'esbuild-copy-static-files'; |
|
|
|
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 distDir = prod |
|
? `./dist/${process.env.npm_package_name}-${process.env.npm_package_version}/${process.env.npm_package_name}` |
|
: './Obsidian Encrypt - test-vault/.obsidian/plugins/meld-encrypt' |
|
; |
|
|
|
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...'); |
|
await ctx.rebuild(); |
|
process.exit(0); |
|
}else{ |
|
console.log('Building development bundle...'); |
|
await ctx.watch(); |
|
} |