lein-npm 下载 dependencies of dependencies (re-frame template)

lein-npm downloads dependencies of dependencies (re-frame template)

lein-npm 插件添加到我的re-frame 项目以管理npm 依赖项时,lein-npm 意外添加了依赖项的依赖项。我的理解是那是不必要的,因为它们要么包含在我的依赖项的 jar 中,要么不需要(因为首先不需要将 lein-npm 添加到我的项目中)。

使用 re-frame 模板,我构建了我的 project.clj:

的这个最小示例
(defproject stamm "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [re-frame "0.9.1"]]
  :plugins      [[lein-npm "0.6.2"]])

现在 returns 正在呼叫 lein npm list 以下内容:

project@0.1.0-SNAPSHOT /path/to/my/project
├── UNMET DEPENDENCY karma@1.0.0
├── UNMET DEPENDENCY karma-chrome-launcher@0.2.0
├── UNMET DEPENDENCY karma-cljs-test@0.1.0
└── UNMET DEPENDENCY karma-junit-reporter@0.3.8

这导致大约 15 MB 的依赖项被下载,只需添加 lein-npm。我没有在我的 project.clj 中声明这里显示的任何 karma* 依赖项(事实上:我此时根本没有声明任何 npm 依赖项)。它们源自依赖项 [re-frame "0.9.1"].

有什么办法可以避免吗?

我发布了 re-frame 0.9.2,它将 NPM 依赖项放在 :devDependencies 键中。这将意味着它们不可传递,并且 re-frame 使用项目不需要安装 karma*.


原回答:

在撰写本文时,我认为没有办法解决这个问题,但我已经在 https://github.com/RyanMcG/lein-npm/issues/50 上打开了一个问题来报告它。