【问题标题】:How to use bignumber.js with Clojurescript's :npm-deps feature如何将 bignumber.js 与 Clojurescript 的 :npm-deps 功能一起使用
【发布时间】:2017-07-10 03:51:50
【问题描述】:

我一直在关注https://anmonteiro.com/2017/03/requiring-node-js-modules-from-clojurescript-namespaces/ 的教程,以使用 Clojurescript 的 :npm-deps 功能。

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

这是来自我的 project.clj

{: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"}}

这是带有输出的代码:

(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"]

【问题讨论】:

    标签: clojurescript


    【解决方案1】:

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

    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"] 中的错误或重大更改。

    更新:

    这确实是今天修复的一个错误:

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

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

    【讨论】:

      猜你喜欢
      • 2019-08-07
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      相关资源
      最近更新 更多