config.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const path = require("path");
  2. const config = require("./config.json");
  3. const configFolder = __dirname;
  4. const rootFolder = path.resolve(configFolder, "../../");
  5. const tempFolder = path.resolve(rootFolder, config.build.tempDirectory);
  6. const outputFolder = path.resolve(configFolder, config.build.outputDirectory);
  7. const localDevES6 = path.join(tempFolder, config.build.localDevES6FolderName);
  8. const localDevUMD = path.join(tempFolder, config.build.localDevUMDFolderName);
  9. const ES6Package = path.join(tempFolder, config.build.ES6Package);
  10. const intermediateES6Package = path.join(tempFolder, config.build.intermediateES6Package);
  11. config.computed = {
  12. rootFolder,
  13. tempFolder,
  14. outputFolder,
  15. localDevES6,
  16. localDevUMD,
  17. ES6Package,
  18. intermediateES6Package
  19. }
  20. config.modules.map(function(module) {
  21. const settings = config[module];
  22. const mainDirectory = path.resolve(rootFolder, settings.build.mainFolder);
  23. const distFolder = (settings.build.distOutputDirectory !== undefined) ? settings.build.distOutputDirectory : module;
  24. const distDirectory = path.join(outputFolder, distFolder);
  25. const localDevES6Directory = path.join(localDevES6, module);
  26. const localDevUMDDirectory = path.join(localDevUMD, distFolder);
  27. const ES6PackageDirectory = path.join(ES6Package, module);
  28. const intermediateES6PackageDirectory = path.join(intermediateES6Package, module);
  29. const webpackConfigPath = path.join(mainDirectory, "webpack.config.js");
  30. const tsConfigPath = path.join(mainDirectory, "tsconfig.json");
  31. const packageJSONPath = settings.build.packageJSON ?
  32. path.join(rootFolder, settings.build.packageJSON) :
  33. path.join(distDirectory, 'package.json');
  34. const tsConfig = require(tsConfigPath);
  35. const srcDirectory = path.resolve(mainDirectory, tsConfig.compilerOptions.rootDir);
  36. const shaderGlob = srcDirectory + "/**/*.fx";
  37. const shaderTSGlob = srcDirectory + "/**/*.fx.ts";
  38. for (let library of settings.libraries) {
  39. const entryPath = path.join(srcDirectory, library.entry);
  40. library.computed = {
  41. entryPath
  42. };
  43. }
  44. settings.computed = {
  45. mainDirectory,
  46. srcDirectory,
  47. distDirectory,
  48. localDevES6Directory,
  49. localDevUMDDirectory,
  50. ES6PackageDirectory,
  51. intermediateES6PackageDirectory,
  52. webpackConfigPath,
  53. tsConfigPath,
  54. packageJSONPath,
  55. shaderGlob,
  56. shaderTSGlob
  57. }
  58. });
  59. module.exports = config;