The frontend/UI server, written in JS using the MarkoJS library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.3 KiB

  1. const build = require("./builder")
  2. // Setup global environment
  3. require("marko/node-require").install()
  4. require("es6-promise").polyfill()
  5. // Configure lasso
  6. require("lasso").configure({
  7. plugins: [
  8. "lasso-marko",
  9. "lasso-less",
  10. ],
  11. outputDir: "./.static",
  12. bundlingEnabled: true,
  13. minify: true,
  14. fingerprintsEnabled: true,
  15. require: {
  16. builtins: {
  17. fs: require.resolve("empty-module"),
  18. },
  19. transforms: [
  20. {
  21. transform: "lasso-babel-transform",
  22. config: {
  23. extensions: [".js", ".es6"], // Enabled file extensions. Default: [".js", ".es6"]
  24. babelOptions: {
  25. presets: [ "es2015" ]
  26. }
  27. }
  28. }
  29. ]
  30. }
  31. })
  32. // Render templates
  33. async function buildAll() {
  34. await build("./marko/page/story/list.marko")
  35. await build("./marko/page/story/tag-list.marko", {tags: []})
  36. await build("./marko/page/logs/list.marko")
  37. await build("./marko/page/data/channels.marko", {channels: [], user: {}})
  38. await build("./marko/page/data/characters.marko", {characters: [], user: {}})
  39. await build("./marko/page/story-content/view.marko", {story: {chapters: []}})
  40. await build("./marko/page/logs-content/view.marko", {log: {posts: [], channel: {}}})
  41. }
  42. buildAll().then(() => {
  43. console.log("Done!")
  44. }).catch(err => {
  45. console.error(err)
  46. process.exit(1)
  47. })