2

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

现在调用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. 我没有声明karma*这里显示的任何依赖项project.clj(事实上:我现在根本没有声明任何npm依赖项)。它们源自依赖项[re-frame "0.9.1"]

有没有办法防止这种情况?

4

1 回答 1

2

我已经发布了 re-frame 0.9.2,它将 NPM 依赖项置于:devDependencies关键位置。这将意味着它们不是可传递的,并且使用重新框架的项目不需要安装karma*.


原答案:

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

于 2017-01-28T19:55:01.317 回答