config.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. config.computed = {
  11. rootFolder,
  12. tempFolder,
  13. outputFolder,
  14. localDevES6,
  15. localDevUMD,
  16. ES6Package
  17. }
  18. config.modules.map(function(module) {
  19. const settings = config[module];
  20. const mainDirectory = path.resolve(rootFolder, settings.build.mainFolder);
  21. const distFolder = (settings.build.distOutputDirectory !== undefined) ? settings.build.distOutputDirectory : module;
  22. const distDirectory = path.join(outputFolder, distFolder);
  23. const localDevES6Directory = path.join(localDevES6, module);
  24. const localDevUMDDirectory = path.join(localDevUMD, distFolder);
  25. const ES6PackageDirectory = path.join(ES6Package, module);
  26. const webpackConfigPath = path.join(mainDirectory, "webpack.config.js");
  27. const tsConfigPath = path.join(mainDirectory, "tsconfig.json");
  28. const packageJSONPath = settings.build.packageJSON ?
  29. path.join(rootFolder, settings.build.packageJSON) :
  30. path.join(distDirectory, 'package.json');
  31. const tsConfig = require(tsConfigPath);
  32. const srcDirectory = path.resolve(mainDirectory, tsConfig.compilerOptions.rootDir);
  33. const shaderGlob = srcDirectory + "/**/*.fx";
  34. const shaderTSGlob = srcDirectory + "/**/*.fx.ts";
  35. for (let library of settings.libraries) {
  36. const entryPath = path.join(srcDirectory, library.entry);
  37. library.computed = {
  38. entryPath
  39. };
  40. }
  41. settings.computed = {
  42. mainDirectory,
  43. srcDirectory,
  44. distDirectory,
  45. localDevES6Directory,
  46. localDevUMDDirectory,
  47. ES6PackageDirectory,
  48. webpackConfigPath,
  49. tsConfigPath,
  50. packageJSONPath,
  51. shaderGlob,
  52. shaderTSGlob
  53. }
  54. });
  55. module.exports = config;