config.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. const path = require("path");
  2. const fs = require("fs-extra");
  3. const config = require("./config.json");
  4. const configFolder = __dirname;
  5. const rootFolder = path.resolve(configFolder, "../../");
  6. const tempFolder = path.resolve(rootFolder, config.build.tempDirectory);
  7. const outputFolder = path.resolve(configFolder, config.build.outputDirectory);
  8. const localDevES6Folder = path.join(tempFolder, config.build.localDevES6FolderName);
  9. const localDevUMDFolder = path.join(tempFolder, config.build.localDevUMDFolderName);
  10. const sourceES6Folder = path.join(tempFolder, config.build.sourceES6FolderName);
  11. const distES6Folder = path.join(tempFolder, config.build.distES6FolderName);
  12. const packageES6Folder = path.join(tempFolder, config.build.packageES6FolderName);
  13. config.computed = {
  14. rootFolder,
  15. tempFolder,
  16. outputFolder,
  17. localDevES6Folder,
  18. localDevUMDFolder,
  19. sourceES6Folder,
  20. distES6Folder,
  21. packageES6Folder
  22. }
  23. config.modules.map(function(module) {
  24. const settings = config[module];
  25. const mainDirectory = path.resolve(rootFolder, settings.build.mainFolder);
  26. const distFolder = (settings.build.distOutputDirectory !== undefined) ? settings.build.distOutputDirectory : module;
  27. const distDirectory = path.join(outputFolder, distFolder);
  28. const localDevES6Directory = path.join(localDevES6Folder, module);
  29. const localDevUMDDirectory = path.join(localDevUMDFolder, distFolder);
  30. const sourceES6Directory = path.join(sourceES6Folder, module);
  31. const distES6Directory = path.join(distES6Folder, module);
  32. const packageES6Directory = path.join(packageES6Folder, module);
  33. const webpackConfigPath = path.join(mainDirectory, "webpack.config.js");
  34. const tsConfigPath = path.join(mainDirectory, "tsconfig.json");
  35. const packageJSONPath = settings.build.packageJSON ?
  36. path.join(rootFolder, settings.build.packageJSON) :
  37. path.join(distDirectory, 'package.json');
  38. settings.computed = {
  39. mainDirectory,
  40. distDirectory,
  41. localDevES6Directory,
  42. localDevUMDDirectory,
  43. sourceES6Directory,
  44. distES6Directory,
  45. packageES6Directory,
  46. webpackConfigPath,
  47. tsConfigPath,
  48. packageJSONPath
  49. }
  50. // Prevent es6 bundled lib crash.
  51. if (fs.existsSync(tsConfigPath)) {
  52. const tsConfig = require(tsConfigPath);
  53. const srcDirectory = path.resolve(mainDirectory, tsConfig.compilerOptions.rootDir);
  54. const shaderGlob = srcDirectory + "/**/*.fx";
  55. const shaderTSGlob = srcDirectory + "/**/*.fx.ts";
  56. for (let library of settings.libraries) {
  57. const entryPath = path.join(srcDirectory, library.entry);
  58. library.computed = {
  59. entryPath
  60. };
  61. }
  62. settings.computed.srcDirectory = srcDirectory;
  63. settings.computed.shaderGlob = shaderGlob;
  64. settings.computed.shaderTSGlob = shaderTSGlob;
  65. }
  66. });
  67. module.exports = config;