clojurescript 프로젝트에서 임의의 node.js 모듈을 사용할 수 있습니까? 그렇다면 어떻게 그들을 포함시켜야합니까? 그렇지 않다면 왜 안 되겠습니까? 당신이 최적화 없음을 사용하지 않는 경우clojurescript에서 임의의 노드 모듈을 사용할 수 있습니까?
(def fs (js/require "fs"))
(println (.readdirSync fs js/__dirname))
가 externs에주의 :
clojurescript 프로젝트에서 임의의 node.js 모듈을 사용할 수 있습니까? 그렇다면 어떻게 그들을 포함시켜야합니까? 그렇지 않다면 왜 안 되겠습니까? 당신이 최적화 없음을 사용하지 않는 경우clojurescript에서 임의의 노드 모듈을 사용할 수 있습니까?
(def fs (js/require "fs"))
(println (.readdirSync fs js/__dirname))
가 externs에주의 :
은 예, 할 수 있습니다, 그것에 대해 특별한 것은 없다.
편집 : 다양한 JS 패키지 관리자?
아니와 leiningen 플레이를한다. 언어에는 패키지가 없으므로 알 수 없습니다. js 의존성 관리와 lein deps도해야합니다. 이 두 패키지 관리자를 통합하는 데 도움이되는 lein-npm 및 lein-bower이 있습니다.
ClojureScript 1.9.854 이후로 npm 모듈을 종속성으로 선언하고 네임 스페이스에서 요구하도록 지원하는 것이 더 좋습니다. (당신이 lein
/boot
가 자동으로 설치하려는 경우 :install-deps
하나와 함께) 종속성으로 선언하기 위해
, 당신은 :npm-deps
컴파일러 옵션을 사용해야합니다.
:npm-deps
은 키워드와 문자열 사이의 맵입니다. 여기서 키워드는 npm
을 사용하여 설치하는 데 사용할 종속성의 이름이고 종속성의 버전은 문자열입니다.
(당신이 lein-cljsbuild를 사용하는 경우) 당신이 순서대로, 당신의 project.clj
에 추가 할 수 있는지의 예는 네임 스페이스에서 다음 left-pad:
:cljsbuild {:builds [{:id "prod"
:source-paths ["src"]
:compiler {:main left-pad-demo.core
:output-to "package/index.js"
:target :nodejs
:output-dir "target"
:optimizations :simple
:install-deps true
:npm-deps {:left-pad "1.2.0"}
:pretty-print true}}]})
그리고를 사용하는, 그렇게처럼 필요할 수 있습니다 :
(ns left-pad-demo.core
(:require left-pad))
정도 :
(ns left-pad-demo.core
(:require ["left-pad" :as lp]))
전체 작업
(ns left-pad-demo.core
(:require left-pad))
(defn -main [s length]
(console.log (left-pad s length)))
(set! *main-cli-fn* -main)
참고 : 보내고 네임 스페이스처럼 보일 수
는 다양한 JS 패키지 관리자와 leiningen 플레이를합니까? – Bill
아니요. 언어에는 패키지가 없으므로 알 수 없습니다. js 의존성 관리와 lein deps도해야합니다. 이들을 통합하는데 도움이되는 [lein-npm] (https://github.com/bodil/lein-npm)과 [lein-bower] (https://github.com/chlorinejs/lein-bower)가 있습니다. 두 명의 패키지 관리자 – Joaquin
cljs 네임 스페이스에 노드 모듈 (예 : "fs")이 있어야 해당 메소드에 직접 액세스 할 수 있습니까? 이 경우, 우리는'(readdirSync js/__ dirname)'을 말할 수 있기를 원할 것입니다. – George