config.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 intermediateES6PackageSrcDirectory = path.resolve(intermediateES6PackageDirectory, tsConfig.compilerOptions.rootDir);
  37. const shaderGlob = srcDirectory + "/**/*.fx";
  38. const shaderTSGlob = srcDirectory + "/**/*.fx.ts";
  39. for (let library of settings.libraries) {
  40. const entryPath = path.join(srcDirectory, library.entry);
  41. library.computed = {
  42. entryPath
  43. };
  44. }
  45. settings.computed = {
  46. mainDirectory,
  47. srcDirectory,
  48. distDirectory,
  49. localDevES6Directory,
  50. localDevUMDDirectory,
  51. ES6PackageDirectory,
  52. intermediateES6PackageDirectory,
  53. intermediateES6PackageSrcDirectory,
  54. webpackConfigPath,
  55. tsConfigPath,
  56. packageJSONPath,
  57. shaderGlob,
  58. shaderTSGlob
  59. }
  60. });
  61. module.exports = config;