demos.dev.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { join } from 'path';
  2. import { task } from 'gulp';
  3. import { DEMOS_ROOT, DIST_DEMOS_ROOT, ES_2015, PROJECT_ROOT } from '../constants';
  4. import { createTempTsConfig, getFolderInfo, runAppScriptsServe } from '../util';
  5. task('demos.watch', ['demos.prepare'], (done: Function) => {
  6. const folderInfo = getFolderInfo();
  7. if (!folderInfo || !folderInfo.componentName ) {
  8. done(new Error(`Usage: gulp e2e.watch --folder modal`));
  9. }
  10. serveDemo(folderInfo.componentName, folderInfo.devApp).then(() => {
  11. done();
  12. }).catch((err: Error) => {
  13. done(err);
  14. });
  15. });
  16. function serveDemo(folderName: any, devApp: boolean) {
  17. const ionicAngularDir = join(PROJECT_ROOT, 'src');
  18. const srcTestRoot = join(DEMOS_ROOT, 'src', folderName);
  19. const distDemoRoot = join(DIST_DEMOS_ROOT, folderName);
  20. const includeGlob = [ join(ionicAngularDir, '**', '*.ts'),
  21. join(srcTestRoot, '**', '*.ts')];
  22. const pathToWriteFile = join(distDemoRoot, 'tsconfig.json');
  23. const pathToReadFile = join(PROJECT_ROOT, 'tsconfig.json');
  24. createTempTsConfig(includeGlob, ES_2015, ES_2015, pathToReadFile, pathToWriteFile, { removeComments: true});
  25. const sassConfigPath = join('scripts', 'demos', 'sass.config.js');
  26. const copyConfigPath = join('scripts', 'demos', 'copy.config.js');
  27. const watchConfigPath = join('scripts', 'demos', 'watch.config.js');
  28. const appEntryPoint = join(srcTestRoot, 'app', 'main.ts');
  29. const appNgModulePath = join(srcTestRoot, 'app', 'app.module.ts');
  30. const distDir = join(distDemoRoot, 'www');
  31. return runAppScriptsServe(folderName, appEntryPoint, appNgModulePath, ionicAngularDir, distDir, pathToWriteFile, ionicAngularDir, sassConfigPath, copyConfigPath, watchConfigPath, devApp);
  32. }