config.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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.additionalNpmPackages.forEach(package => {
  24. let packagePath = path.join(rootFolder, package.path);
  25. package.computed = {
  26. path: packagePath
  27. };
  28. });
  29. config.modules.map(function(module) {
  30. const settings = config[module];
  31. const mainDirectory = path.resolve(rootFolder, settings.build.mainFolder);
  32. const distFolder = (settings.build.distOutputDirectory !== undefined) ? settings.build.distOutputDirectory : module;
  33. const distDirectory = path.join(outputFolder, distFolder);
  34. const localDevES6Directory = path.join(localDevES6Folder, module);
  35. const localDevUMDDirectory = path.join(localDevUMDFolder, distFolder);
  36. const sourceES6Directory = path.join(sourceES6Folder, module);
  37. const distES6Directory = path.join(distES6Folder, module);
  38. const packageES6Directory = path.join(packageES6Folder, module);
  39. const webpackConfigPath = path.join(mainDirectory, "webpack.config.js");
  40. const tsConfigPath = path.join(mainDirectory, "tsconfig.json");
  41. const packageJSONPath = settings.build.packageJSON ?
  42. path.join(rootFolder, settings.build.packageJSON) :
  43. path.join(distDirectory, 'package.json');
  44. settings.computed = {
  45. mainDirectory,
  46. distDirectory,
  47. localDevES6Directory,
  48. localDevUMDDirectory,
  49. sourceES6Directory,
  50. distES6Directory,
  51. packageES6Directory,
  52. webpackConfigPath,
  53. tsConfigPath,
  54. packageJSONPath
  55. }
  56. // Prevent es6 bundled lib crash.
  57. if (fs.existsSync(tsConfigPath)) {
  58. const tsConfig = require(tsConfigPath);
  59. const srcDirectory = path.resolve(mainDirectory, tsConfig.compilerOptions.rootDir);
  60. const shaderGlob = srcDirectory.replace(/\\/g, "/") + "/**/*.fx";
  61. const shaderTSGlob = [
  62. srcDirectory.replace(/\\/g, "/") + "/**/*.fragment.ts",
  63. srcDirectory.replace(/\\/g, "/") + "/**/*.vertex.ts",
  64. srcDirectory.replace(/\\/g, "/") + "/**/ShadersInclude/*.ts",
  65. ];
  66. for (let library of settings.libraries) {
  67. const entryPath = path.join(srcDirectory, library.entry);
  68. library.computed = {
  69. entryPath
  70. };
  71. }
  72. settings.computed.srcDirectory = srcDirectory;
  73. settings.computed.shaderGlob = shaderGlob;
  74. settings.computed.shaderTSGlob = shaderTSGlob;
  75. }
  76. });
  77. module.exports = config;