小编Ada*_*deg的帖子

列出没有devDependencies的节点包依赖项

我想得到我的node.js项目的所有外部依赖项的列表,这是我的项目所需的模块和这些模块所需的模块.我尝试了两种方法,

  • 执行静态代码分析的工具(madge,require-analyzer,module-grapher).但他们不会递归地访问node_modules目录中所需的模块.
  • 从中获取信息的工具package.json.嗯,不是真正的工具,它只意味着简单的npm ls调用.

第二种方法的问题是列出指定为的包devDependencies.我意识到我会很乐意跑步npm ls --no-dev或类似的事情.我试过了npm ls --production,但没有任何区别.知道如何实现它吗?

dependency-management node.js npm

6
推荐指数
2
解决办法
5426
查看次数

使用clojure.zip对Postorder树进行遍历以编辑节点

我有一个表示为嵌套向量的树.我想indexed对树进行泛化,显示每个节点的索引,如下所示,

(visit 42); => [0 42]
(visit [6 7]); => [0
              ;     [[0 6] 
              ;      [1 7]]]
Run Code Online (Sandbox Code Playgroud)

天真的实现将直接使用clojure.zip(如此处已经提到的那样)

(defn visit [tree]
  (loop [loc (vector-zip tree)]
    (if (end? loc)
      (root loc)
      (recur 
        (next (edit loc #(conj 
                           [(count (lefts loc))] 
                           %)))))))
Run Code Online (Sandbox Code Playgroud)

但是反复出现clojure.zip/next执行前序遍历,在这种情况下导致无限循环(未访问的节点无限地conj进入[:found]向量).另一种方法是使用clojure.walk/postwalk,但它不提供结构信息,例如索引.

你会如何实现这个?是否有postorder-next拉链可以立即解决?

tree traversal clojure zipper

5
推荐指数
1
解决办法
1401
查看次数

docx/doc/rtf和轻量级标记之间的转换

我正在寻找一个工具或一组工具来转换文件格式D和M在哪里

  • D是MSWord按优先顺序处理的格式,docx,doc,rtf
  • M是一个轻量级的标记,如markdown,textile,txt2tags,它可以是一个深奥的标记
  • 有一种方法可以从M生成html
  • 转换是双向的,它既可以从D到M,也可以从M到D完成
  • utf-8编码处理得当
  • 内容很简单,段落,一些简单的格式,如粗体和斜体,也许列表
  • 这些工具与平台无关

到目前为止我发现了什么

  • TeX,LaTeX--太重量级了
  • docx2txt - 太轻了,它根本不支持格式化
  • HTML - MSWord生成臃肿的HTML
  • 一些单向转换,例如doc to mediawiki,

更新:

用例是技术人员和非技术人员之间的文档工作流程

  • 我,技术人员用纯文本编辑文档,将其放入版本控制等.
  • 我把它寄给我的经理或其他非技术人员
  • 他们添加评论,使用他们的Word对其进行更改,然后将其发回给我
  • 我想简单地修改他们的更改,进行更改,将其置于版本控制中,而不必使用Word

markup cross-platform ms-word docx

5
推荐指数
1
解决办法
1532
查看次数

最近的标签在mercurial之前提示

我标记版本hg tag <version-number>.当我发布错误修复时,我不想增加版本号,但我想在构建过程中使用最新的版本号.如果我运行hg tags,它将tip首先显示,然后版本号按降序显示.我可以让它运行hg tags | head -n2 | tail -n1.我想知道是否有更优雅,纯粹的善变方式来获得它.

versioning tags mercurial

5
推荐指数
1
解决办法
640
查看次数

使用groovyserv或nailgun或什么改善gradle启动时间

我正在努力改善Gradle的启动时间.这种实验性--daemon开关似乎没有真正加快速度.所以我想使用一些独立于gradle的服务器进程,并使gradle连接到它.到目前为止我找到的选项是

由于gradle是由shell脚本启动的,因此需要进行一些调整.我的问题是:是否有人使用上述选项开始gradle?或者,如果您已成功使用其他选项,那是什么?

performance startup gradle nailgun

4
推荐指数
1
解决办法
1628
查看次数

Makefile始终运行目标

我可能会错过这个Makefile非常明显的东西:

convert: devel/bar
  touch convert

init: devel/foo
  echo 'init'

devel/foo:
  mkdir -p devel
  touch devel/foo

devel/bar: init
  touch devel/bar
Run Code Online (Sandbox Code Playgroud)

当我运行它时,devel/bar目标总是被调用.我希望它可以调用convert,检查文件devel/bar,并仅在找不到该文件时调用该目标.如果我删除它的依赖init,一切都按照我的预期工作.我究竟做错了什么?

makefile

4
推荐指数
1
解决办法
5036
查看次数

扩展ClojureScript中的协议以从本机js对象获取值

我有一个代码库,它大量使用getget-in嵌套表单.我希望能够使用本机javascript对象,没有(很多)代码重写.

js> cljs.user.o = {foo: 42}  // in js console

cljs.user> (get o "foo") ; => 42 ; in cljs console
Run Code Online (Sandbox Code Playgroud)

由于我只查询表单,但不修改它们,我认为它足以实现get(get-in依赖于它).这是我的尝试,

(extend-protocol ILookup
  js/Object
    (-lookup [m k] (aget m k))
    (-lookup [m k not-found (or (aget m k) not-found)))
Run Code Online (Sandbox Code Playgroud)

它似乎有效,但它以一种奇怪的方式打破了很多东西.

protocols clojurescript

4
推荐指数
1
解决办法
1082
查看次数

将参数传递给project.clj可读的leiningen

我有一个project.clj文件,我想根据leiningen调用时传入的参数使用不同的文件.这是我的假设示例项目

(defproject simple "0.0.1"
  :source-paths [(get-argument "source.path")])
Run Code Online (Sandbox Code Playgroud)

(在这种情况下get-argument只会打电话System/getProperty).我会像这样使用这个文件,

lein2 compile -Dsource.path=path/to/location
Run Code Online (Sandbox Code Playgroud)

问题是双重的,

  • 我不知道如何向莱宁根传递论据.它不接受-Dkey=value语法.我在关于传递可选/额外参数的文档中找不到任何内容.我错过了一些明显的东西吗
  • 里面的子表格defproject似乎是以特殊方式处理的.我找不到一种简单的方法来将代码放入其中.

我找到了一些方法

(我实际想要使用它的是我有一个带有不同工件的clojurescript项目.虽然可以为它配置不同的构建,但它们都共享相同的交叉.)

clojure argument-passing command-line-arguments leiningen

3
推荐指数
1
解决办法
1664
查看次数

Clojure和ClojureScript中get的不同行为

这是区别:

clj> (get 42 :anything) ; => nil
cljs> (get 42 :anything) ; =>  Error: No protocol method ILookup.-lookup defined for type number: 42
Run Code Online (Sandbox Code Playgroud)

我不知道这是ClojureScript中的错误还是无证的差异,或者我只是遗漏了一些东西.

clojure clojurescript

2
推荐指数
1
解决办法
287
查看次数