首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将bignumber.js与Clojurescript的:npm-deps功能一起使用

如何将bignumber.js与Clojurescript的:npm-deps功能一起使用
EN

Stack Overflow用户
提问于 2017-07-10 11:51:51
回答 1查看 716关注 0票数 1

我一直在遵循https://anmonteiro.com/2017/03/requiring-node-js-modules-from-clojurescript-namespaces/的教程来使用Clojurescript的:npm-deps特性。

使用left-pad效果很好,但当我尝试使用bignumber.js时遇到了问题。

这是来自我的project.clj

代码语言:javascript
复制
{:main "npm-deps-test.core"
 :output-to "dev-compiled/npm-deps-test.js",
 :output-dir "dev-compiled",
 :target :nodejs,
 :optimizations :none,
 :source-map true
 :npm-deps {:bignumber.js "4.0.2"
            :left-pad "1.1.3"}}

这是带有输出的代码:

代码语言:javascript
复制
(ns npm-deps-test.core
  (:require [left-pad]
            [bignumber.js :as bignumber]))

(enable-console-print!)

(comment
  (type bignumber)
  ; => #object[Object "function Object() { [native code] }"]

  (aget bignumber "__proto__" "constructor")
  ; => #object[Object "function Object() { [native code] }"]

  (bignumber "123")
  ; #object[TypeError TypeError: module$Users$matus$www$clojure_hacking$npm_deps_test$node_modules$bignumber_js$bignumber is not a function]
  ; => nil

  (new bignumber "124")
  ; #object[TypeError TypeError: module$Users$matus$www$clojure_hacking$npm_deps_test$node_modules$bignumber_js$bignumber is not a constructor]
  ; => nil

  (bignumber. "123")
  ; #object[TypeError TypeError: module$Users$matus$www$clojure_hacking$npm_deps_test$node_modules$bignumber_js$bignumber is not a constructor]
  ; => nil

  (left-pad 42 5 0)
  ; => 00042
  )

你知道为什么它不能像预期的那样工作吗?

使用[org.clojure/clojurescript "1.9.671"] [lein-figwheel "0.5.11"]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-11 02:07:53

在使用[org.clojure/clojurescript "1.9.562"]时,这对我在ClojureScript REPL中很有效。

代码语言:javascript
复制
user=> (require '[bignumber.js :as BigNumber])
nil
user=> (BigNumber. "123")
#object[BigNumber 123]
user=> (-> (BigNumber. "12345678") (.toExponential))
"1.2345678e+7"

我猜测您看到的行为可能是[org.clojure/clojurescript "1.9.671"]中的错误或破坏性变化。

更新:

这看起来确实是一个今天被修补的bug:

https://github.com/clojure/clojurescript/commit/00df4ae8a49005dbbb3ad87bf1a24e71897d74f7

我建议您降级到较老的版本(但最近!)ClojureScript的版本,例如[org.clojure/clojurescript "1.9.562"],直到有包含此修补程序的新版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45003533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档