Nano Hash - криптовалюты, майнинг, программирование

ClojureScript Leiningen компилируется в один файл .js?

Можно ли настроить Leiningen таким образом, чтобы он объединял все скомпилированные JS в один файл? В настоящее время он выводит более сотни файлов, что было бы очень медленным в производстве.

Между прочим, я использую шаблон Chestnut. В документации говорится:

В: Я просто хочу скомпилировать ClojureScript в полностью оптимизированный JavaScript, чтобы я мог использовать его на статическом HTML-сайте.

A: Запустите cljsbuild с активным профилем uberjar, например: lein with-profile -dev,+uberjar cljsbuild once, затем найдите resources/public/js/app.js.

Я пробовал, но полученный app.js по-прежнему просто загружает зависимости из других файлов, он не содержит всего приложения.


  • Как выглядит ваш project.clj? Вероятно, вы используете :optimization :none. github.com/clojure/clojurescript/wiki/ 23.08.2015
  • Добавьте еще один [:cljsbuilds :builds ...] на свою карту с помощью optimization :advanced 23.08.2015

Ответы:


1

Как указано в комментариях: убедитесь, что вы используете один из следующих :optimizations:

  • :whitespace
  • :simple
  • :advanced

Дополнительную информацию можно найти в вики ClojureScript: https://github.com/clojure/clojurescript/wiki/Compiler-Options#optimizations

23.08.2015

2

Похоже, что lein with-profile -dev,+uberjar cljsbuild once действительно генерирует один пакет .js. В профиле :uberjar уже установлена ​​опция :optimizations :advanced:

:uberjar {:source-paths ["env/prod/clj"]
                       :hooks [leiningen.cljsbuild]
                       :env {:production true}
                       :omit-source true
                       :aot :all
                       :main calc-pack.server
                       :cljsbuild {:builds {:app
                                            {:source-paths ["env/prod/cljs"]
                                             :compiler
                                             {:optimizations :advanced
                                              :pretty-print false}}}}}

По-видимому, он не работал должным образом из-за ошибок в моем собственном коде.

25.08.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..