问题标签 [cljsbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojurescript - Clojurescript 使用模块构建 - 常量表崩溃
我正在使用以下方法构建应用程序:
lein cljsbuild once min
我的最小配置在哪里
我最终得到了 3 个 js 文件:cljs_base.js、constants_table.js 和 app.js
当我按顺序将它们包含在我的 index.html 文件中时,我得到一个控制台异常:
未捕获的类型错误:cljs.core.Keyword 不是 constants_table.js:1 的构造函数
如果我添加:optimize-constants
false 那么它会正确构建模块。
webpack - 如何在 webpack 包更新的 cljs figwheel 和 cljsbuild 项目中触发编译和重新加载?
我有一个主要是 cljs 的项目,每当我更改 webpack 生成的 bundle.js 文件时,我都想让 figwheel 编译和重新加载。每当我编辑 js 时,我都会让 webpack 重新生成 bundle.js,但是如何让 figwheel 注意到它发生了变化?我觉得我需要类似 :css-dirs 选项的东西,但对于 js,而不是 css。
cljsbuild 可能也需要被触发。我的编译选项中确实有一个 :foreign-libs 声明,它引用了 webpack 包,但这可能还不够。
clojurescript - :npm-deps 失败“节点”未找到
我正在尝试使用 clojurescript 编译器的新 :npm-deps 功能来包含 React-Helmet 组件(https://github.com/nfl/react-helmet)。“开发”构建的相关片段:
我通过运行 start 得到了 cljs REPL!在用户 ns 中的函数:
然后编译失败:
(自然安装了node.js)。
node.js - 构建.cljs时如何在编译时定义目标环境?
我想.cljs
为浏览器和 node.js 环境编译我的文件,以获得服务器端渲染。据我了解,没有办法在编译时使用阅读器宏条件定义 cljs env,例如:
所以,我不能轻易地告诉编译器处理类似#?(:cljs-node ...)
node.js env 的东西。
我在这里看到的第二个选项是开发一个宏文件,它将在编译时定义 env。但是如何定义当前构建是针对 node.js 的呢?可能是,我可以以某种方式将一些参数传递给编译器或获取:target
编译器参数?
这是我的启动文件:
应用程序.cljs.edn:
application.node.cljs.edn:
node.js - 无法在 ClojureScript 1.8 Lein 项目中使用 NodeJS Twitter 库
我正在从我用脚手架搭建的起始模板开发一个 ClojureScript 项目lein new cljs-lambda my-proj
。
project.clj 看起来像这样:
```
在:npm {:dependencies }
我已添加[twitter "1.7.1"]
以引入我的外部 javascript 库下,其安装命令为twitternpm i twitter --save
,最新版本为“1.7.1”。当我运行时,lein deps
我确实可以看到我的库正在下载到 node_modules 文件夹中。耶!我的问题现在是在我的 clojurescript 文件中使用它...
对于这个简短而简单的问题,让我们假设我的项目只有一个 clojurescript 文件 core.cljs,其中包含以下代码:
当我尝试通过将 `[twitter :as twitter] 与 :require 表单中的其他内容一起添加 twitter 时,它会引发错误:
这不是在 cljs 代码中添加 nodejs 模块的正确方法吗?我是否需要使用 nodejs 版本的 require 而不是 clojurescript 要求?谢谢!
clojurescript - lein cljsbuild 给出“Could not write JavaScript nil”错误
每次我尝试运行时lein cljsbuild once
都会出现错误:
无法编写 JavaScript 零
任何想法或想法都会受到赞赏,因为我已经坚持了一段时间,不幸的是不能再进一步了。
这是我一直在做的事情。
- 通过runnin创建一个名为finance的新项目
lein new app finance
project.clj
使用依赖项、cljsbuild、插件和主要规范更新文件(见下文)- 运行
lein deps
,这有效。 - 运行
lein run
,这也有效,在控制台中吐出“Hello World”。 尝试运行
/li>lein cljsbuild once
,然后我得到这个错误Could not write JavaScript nil
clojurescript - lein cljsbuild 失败并出现无法追踪的错误。如何解决 cljsbuild 错误?
我没有看到任何编译日志文件,终端中的错误不足以让我进一步排除故障。我如何获得更详细的错误记录,或者我应该如何解决这个问题?
下面的堆栈跟踪的前几行
我有一个简单的 cljs 文件,内容如下
我的 project.clj 具有以下 cljsbuild 配置
更新 1 按照 Alan 在下面的建议,我创建了一个新模板并缩小了原因,以添加一个相当旧的库来与 CouchDB 交互
问题仍然是如何获取 cljsbuild 的详细/完整日志。
更新 2 原来库在依赖项列表中的位置会产生影响。如果它出现在 [com.cognitect/transit-clj "0.8.313"]之前编译失败,否则它可以工作。
npm - 如何在生产设置中放置 Clojurescript npm-deps?
这是一个简单的问题,但我已经困惑了一段时间了,它没有太多的文档可供查看:
我有一个使用 ClojureScript、figwheel、npm deps 的开发设置,对我来说工作得很好。但是当我生成一个生产编译的 JS 文件时,它没有找到 npm 依赖文件。那么,我应该在哪里以及如何将这些包中的哪些放在生产网络服务器中,以便找到并加载它们?
问候,克里斯
clojurescript - $jscomp 未在为 clojurescript 和试剂加载的代码中定义
使用 clojurescript 1.10.758 和试剂 1.0.0,我遇到了一个错误,其中文件 index.js 尝试引用$jscomp
未定义的文件。
我已经看到许多与 $jscomp 相关的 Stackoverflow 和 Github 问题在 shadow-cljs 的上下文中未定义,但我没有使用它。
当我使用带有 figwheel 的开发模式构建(使用带有 cljsbuild 和 figwheel 插件的 Leiningen)时会出现问题,并且如果我将 cljsbuild 用于一次性开发构建也会出现问题。奇怪的是,如果我使用 webpack 创建一个 bundle,这个问题就不会出现。
在我尝试让 webpack 工作之前,我确实有没有 webpack 的工作代码。我更改的某些内容似乎影响了非捆绑构建。我能做的唯一改变是使用 npm 安装 react 和 react-dom,并从 Leiningen 依赖项中的试剂中排除这些包。但是撤消排除并没有使非捆绑代码再次工作。
关于如何在$jscomp
第一次需要时进行定义的任何建议?