Ctrl K
ComunidadGuías…

shadow-cljs.edn

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
;; shadow-cljs configuration
{:deps true
 :nrepl {:port 8701}
 :source-paths ["src/main" "src/electron" "src/resources"]

 :ssl {:enabled #shadow/env ["LOGSEQ_SHADOW_HTTPS" :as :bool :default false]
       :keystore "ssl/mobile-dev/keystore.jks"
       :password "shadow-cljs"}

 ;; "." for /static
 :dev-http {3001 ["static" "."]
            3002 ["static" "."]}

 :js-options {:js-package-dirs ["node_modules"]}

 :builds
 {:app {:target        :browser
        :module-loader true
	        :js-options    {:ignore-asset-requires true}
        :modules       {:main
                        {:init-fn frontend.core/init}
                        :code-editor
                        {:entries [frontend.extensions.code]
                         :depends-on #{:main}}}

        :output-dir       "./static/js"
        :asset-path       "/static/js"
        :compiler-options {:infer-externs      :auto
                           :output-feature-set :es-next-in
                           :source-map true
                           :externs ["datascript/externs.js"
                                     "externs.js"]
                           :warnings {:fn-deprecated false
                                      :redef false}}
        :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
        :closure-defines {lambdaisland.glogi.console/colorize "false"
                          lambdaisland.glogi.console/timestamp "true"
                          goog.debug.LOGGING_ENABLED true
                          frontend.modules.instrumentation.sentry/SENTRY-DSN #shadow/env "LOGSEQ_SENTRY_DSN"
                          frontend.modules.instrumentation.posthog/POSTHOG-TOKEN #shadow/env "LOGSEQ_POSTHOG_TOKEN"
                          frontend.config/ENABLE-PLUGINS #shadow/env ["ENABLE_PLUGINS" :as :bool :default true]
                          frontend.config/ENABLE-DB-SYNC-LOCAL #shadow/env ["ENABLE_DB_SYNC_LOCAL" :as :bool :default false]}

        :devtools {:before-load frontend.core/stop          ;; before live-reloading any code call this function
                   :after-load frontend.core/start          ;; after live-reloading finishes call this function
                   :preloads [devtools.preload
                              shadow.remote.runtime.cljs.browser]
                   :loader-mode :eval
                   ;; :ignore-warnings true
                   }}

  :db-worker {:target        :browser
              :module-loader true
              :js-options    {:js-provider    :external
                              :external-index "target/db-worker.js"
                              :external-index-format :esm
                              :entry-keys ["module" "browser" "main"]
                              :export-conditions ["module" "import", "browser" "require" "default"]}
              :modules       {:db-worker
                              {:init-fn frontend.worker.db-worker/init
                               :web-worker true
                               :prepend-js "importScripts('db-worker-bundle.js');"}}

              :output-dir       "./static/js"
              :asset-path       "/static/js"
              :release          {:asset-path "https://asset.logseq.com/static/js"}
              :compiler-options {:infer-externs      :auto
                                 :output-feature-set :es-next-in
                                 :source-map true
                                 :externs ["datascript/externs.js"
                                           "externs.js"]
                                 :warnings {:fn-deprecated false
                                            :redef false}}
              :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
              :closure-defines {goog.debug.LOGGING_ENABLED true
                                lambdaisland.glogi.console/colorize "false"
                                lambdaisland.glogi.console/timestamp "true"}
              :devtools {:watch-path "/static"
                         :preloads [devtools.preload
                                    shadow.remote.runtime.cljs.browser]
                         :loader-mode :eval}}

  :db-worker-node {:target :node-script
                   :output-to "static/db-worker-node.js"
                   :main frontend.worker.db-worker-node/main
                   :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
                   :compiler-options {:infer-externs :auto
                                      :source-map true
                                      :externs ["datascript/externs.js"
                                                "externs.js"]
                                      :warnings {:fn-deprecated false
                                                 :redef false}}
                   :closure-defines {goog.debug.LOGGING_ENABLED true}}

  :mobile {:target        :browser
           :module-loader true
	           :js-options    {:ignore-asset-requires true}
           ;; handle `require(xxx.css)`
           :modules       {:main
                           {:init-fn mobile.core/init}
                           :code-editor
                           {:entries [frontend.extensions.code]
                            :depends-on #{:main}}}

           :output-dir       "./static/mobile/js"
           :asset-path       "./js"
           :release          {:asset-path "http://localhost"}
           :compiler-options {:infer-externs      :auto
                              :output-feature-set :es-next-in
                              :source-map true
                              :externs ["datascript/externs.js"
                                        "externs.js"]
                              :warnings {:fn-deprecated false
                                         :redef false}}
           :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
           :closure-defines
           {lambdaisland.glogi.console/colorize "false"
            lambdaisland.glogi.console/timestamp "true"
            goog.debug.LOGGING_ENABLED true
            frontend.modules.instrumentation.sentry/SENTRY-DSN #shadow/env "LOGSEQ_SENTRY_DSN"
            frontend.modules.instrumentation.posthog/POSTHOG-TOKEN #shadow/env "LOGSEQ_POSTHOG_TOKEN"
            frontend.config/ENABLE-PLUGINS false
            frontend.config/ENABLE-DB-SYNC-LOCAL #shadow/env ["ENABLE_DB_SYNC_LOCAL" :as :bool :default false]}

           :devtools {:before-load mobile.core/stop!          ;; before live-reloading any code call this function
                      :after-load mobile.core/render!          ;; after live-reloading finishes call this function
                      :watch-path ""
                      :watch-dir "static/mobile"
                      :preloads [devtools.preload
                                 shadow.remote.runtime.cljs.browser]
                      :loader-mode :eval}}
  :electron {:target :node-script
             :output-to "static/electron.js"
             :main electron.core/main
             :devtools {:before-load electron.core/stop
                        :after-load electron.core/start}
             :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
             :compiler-options {:infer-externs :auto
                                :source-map true
                                :source-map-include-sources-content true
                                :source-map-detail-level :all

                                :externs ["datascript/externs.js"
                                          "externs.js"]
                                :warnings {:fn-deprecated false
                                           :redef false}}
             :closure-defines {goog.debug.LOGGING_ENABLED true}}

  :test {:target :node-test
         :output-to "static/tests.js"
         :build-hooks [(shadow.hooks/build-metadata-hook
                        {:build-time "test-build-time"
                         :revision "test-revision"})]
         :closure-defines {frontend.util/NODETEST true
                           frontend.worker-common.util/NODETEST true
                           logseq.shui.util/NODETEST true}
         :devtools {:enabled false}
         ;; disable :static-fns to allow for with-redefs and repl development
         :compiler-options {:static-fns false}
         :main frontend.test.frontend-node-test-runner/main}

  :test-no-worker {:target :node-test
                   :output-to "static/tests-no-worker.js"
                   :build-hooks [(shadow.hooks/build-metadata-hook
                                  {:build-time "test-build-time"
                                   :revision "test-revision"})]
                   :closure-defines {frontend.util/NODETEST true
                                     frontend.worker-common.util/NODETEST true
                                     logseq.shui.util/NODETEST true}
                   :devtools {:enabled false}
                   :build-options {:ns-exclude-regexp "^(frontend\\.worker|logseq\\.db-sync\\.worker)"}
                   ;; disable :static-fns to allow for with-redefs and repl development
                   :compiler-options {:static-fns false}
                   :main frontend.test.frontend-node-test-runner/main}

  :gen-malli-kondo-config {:target :node-script
                           :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
                           :closure-defines {frontend.util/NODETEST true}
                           :devtools {:enabled false}
                           :compiler-options {:static-fns false}
                           :output-to "static/gen-malli-kondo-config.js"
                           :main gen-malli-kondo-config.core/main}

  :publishing {:target :browser
               :module-loader true
	               :js-options {:ignore-asset-requires true}
               :modules {:main
                         {:init-fn frontend.publishing/init}
                         :code-editor
                         {:entries [frontend.extensions.code]
                          :depends-on #{:main}}}

               :output-dir "./static/js/publishing"
               :asset-path "static/js"
               :build-hooks [(shadow.hooks/build-metadata-hook "--long --always --dirty")]
               :closure-defines {logseq.common.config/PUBLISHING true
                                 goog.debug.LOGGING_ENABLED true}
               :compiler-options {:infer-externs :auto
                                  :output-feature-set :es-next-in
                                  :source-map true
                                  :externs ["datascript/externs.js"
                                            "externs.js"]
                                  :warnings {:fn-deprecated false
                                             :redef false}}
               :devtools {:before-load frontend.core/stop
                          :after-load frontend.core/start
                          :preloads [devtools.preload]}}}}