esbuild.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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.js.map'],
  22. to: ['./src/webdav.js.map'],
  23. },
  24. {
  25. from: ['./dist/webdav.css'],
  26. to: ['./assets/css/style.css', './assets/css/style-min.css'],
  27. },
  28. {
  29. from: ['./dist/webdav.css.map'],
  30. to: ['./assets/css/webdav.css.map'],
  31. },
  32. ],
  33. }),
  34. ],
  35. entryNames: '[dir]/[name]',
  36. };
  37. process.argv.forEach((arg) => {
  38. if (arg === 'watch') {
  39. buildOptions.watch = {
  40. onRebuild(error, result) {
  41. if (error) {
  42. console.log('\x1b[31mError rebuilding:\x1b[0m');
  43. console.error(error);
  44. return;
  45. }
  46. console.log('\x1b[32mRebuilt.\x1b[0m');
  47. },
  48. };
  49. }
  50. });
  51. process.stdout.write(`Building... `);
  52. build(buildOptions)
  53. .then(() => {
  54. console.log('\x1b[32mdone.\x1b[0m');
  55. })
  56. .catch((e) => {
  57. console.log(`\x1b[31mfailed.\x1b[0m`);
  58. console.log('');
  59. console.error(e);
  60. process.exit(1);
  61. });