gulpfile.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { exec } from 'child_process';
  2. import fs from 'fs-extra';
  3. import { dest, parallel, series, src } from 'gulp';
  4. import path from 'path';
  5. import { initialData } from '../mock-data/data-sources/initial-data';
  6. // tslint:disable:no-console
  7. function copySchemas() {
  8. return src(['../src/**/*.graphql']).pipe(dest('../dist/server/src'));
  9. }
  10. function copyEmailTemplates() {
  11. return src(['../src/email/templates/**/*']).pipe(dest('../dist/cli/assets/email-templates'));
  12. }
  13. function copyCliAssets() {
  14. return src(['../cli/assets/**/*']).pipe(dest('../dist/cli/assets'));
  15. }
  16. function copyCliImages() {
  17. return src(['../mock-data/assets/**/*']).pipe(dest('../dist/cli/assets/images'));
  18. }
  19. function copyCliProductData() {
  20. return src(['../mock-data/data-sources/products.csv']).pipe(dest('../dist/cli/assets'));
  21. }
  22. function copyCliInitialData() {
  23. return fs.outputFile(
  24. '../dist/cli/assets/initial-data.json',
  25. JSON.stringify(initialData, null, 2),
  26. 'utf-8',
  27. );
  28. }
  29. function buildAdminUi() {
  30. return exec(
  31. 'yarn build --prod=true',
  32. {
  33. cwd: path.join(__dirname, '../../admin-ui'),
  34. },
  35. error => {
  36. if (error) {
  37. console.log(error);
  38. }
  39. },
  40. );
  41. }
  42. function copyAdminUi() {
  43. return src(['../../admin-ui/dist/vendure-admin/**/*']).pipe(dest('../dist/admin-ui'));
  44. }
  45. function buildAndCopyAdminUi() {
  46. return src(['../mock-data/assets/**/*']).pipe(dest('../dist/cli/assets/images'));
  47. }
  48. export const build = parallel(
  49. copySchemas,
  50. copyEmailTemplates,
  51. copyCliAssets,
  52. copyCliImages,
  53. copyCliProductData,
  54. copyCliInitialData,
  55. series(buildAdminUi, copyAdminUi),
  56. );