esbuild.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const { build } = require('esbuild'),
  2. { sassPlugin } = require('esbuild-sass-plugin'),
  3. { copy } = require('esbuild-plugin-copy'),
  4. buildOptions = {
  5. entryPoints: ['src/webdav.ts'],
  6. bundle: true,
  7. minify: true,
  8. sourcemap: true,
  9. watch: false,
  10. outdir: 'dist',
  11. plugins: [
  12. sassPlugin(),
  13. copy({
  14. resolveFrom: 'cwd',
  15. assets: [
  16. {
  17. from: ['./dist/webdav.js'],
  18. to: ['./src/webdav-min.js'],
  19. },
  20. {
  21. from: ['./dist/webdav.css'],
  22. to: ['./assets/css/style.css', './assets/css/style-min.css'],
  23. },
  24. ],
  25. }),
  26. ],
  27. entryNames: '[dir]/[name]',
  28. };
  29. process.argv.forEach((arg) => {
  30. if (arg === 'watch') {
  31. buildOptions.watch = {
  32. onRebuild(error, result) {
  33. if (error) {
  34. console.log('\x1b[31mError rebuilding:\x1b[0m');
  35. console.error(error);
  36. return;
  37. }
  38. console.log('\x1b[32mRebuilt.\x1b[0m');
  39. },
  40. };
  41. }
  42. });
  43. process.stdout.write(`Building... `);
  44. build(buildOptions)
  45. .then(() => {
  46. console.log('\x1b[32mdone.\x1b[0m');
  47. })
  48. .catch((e) => {
  49. console.log(`\x1b[31mfailed.\x1b[0m`);
  50. console.log('');
  51. console.error(e);
  52. process.exit(1);
  53. });